主要是看一下如何在linux及mac上安裝docker,,創(chuàng)建docker鏡像,,部署SpringBoot項(xiàng)目到docker,并借助于DaoCloud進(jìn)行docker鏡像下載加速等,。 我用的電腦是mac,,本身并不支持docker,,需要安裝Docker ToolBox才能使用Docker,。由于大部分情況下線(xiàn)上服務(wù)器都是linux,所以這里先以linux下Docker的使用為例,,后面再講在mac上部署Docker,。我購(gòu)買(mǎi)了一個(gè)阿里云的云服務(wù)器CentOS7.2,以此為例,,如果在購(gòu)買(mǎi)時(shí)就在阿里云鏡像市場(chǎng)選擇了帶Docker的系統(tǒng)版本,,就可以不用看安裝Docker的步驟了。 Linux使用Docker1 下載安裝Docker首先通過(guò)SSH連接云服務(wù)器,,使用yum install docker即可,,安裝完成后啟動(dòng)service docker start,可以將docker加入開(kāi)機(jī)啟動(dòng)chkconfig docker on,。然后就可以使用docker了,,首先試試docker version吧,。 (推薦)如果下載docker很慢,我們可以使用DaoCloud提供的鏡像站點(diǎn)加速,。http://get./ 安裝docker: curl -sSL https://get./docker | sh
如果是正常聯(lián)網(wǎng)的云服務(wù)器或PC,,執(zhí)行完上面命令后就會(huì)開(kāi)始下載安裝了,過(guò)一段時(shí)間后成功會(huì)顯示如下界面 使用下面的方式,,它會(huì)自動(dòng)配置一些信息,,比手工下載docker并配置來(lái)的更方便。
2 配置docker加速器由于很多鏡像在國(guó)內(nèi)下載起來(lái)很慢,,DaoCloud提供了鏡像加速器來(lái)進(jìn)行加速 配置 Docker 加速器curl -sSL https://get./daotools/set_mirror.sh | sh -s http://cc4f263c.m. Copy該腳本可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中,。適用于 Ubuntu14.04、Debian,、CentOS6 ,、CentOS7、Fedora,、Arch Linux,、openSUSE Leap 42.1,其他版本可能有細(xì)微不同,。
我們將上面的命令粘貼到云服務(wù)器命令行,,執(zhí)行后重啟docker即可。
3 下載個(gè)鏡像試試docker官方有很多鏡像,,譬如Ubuntu,、mysql、Tomcat之類(lèi)的,,國(guó)內(nèi)也有很多鏡像市場(chǎng)提供了各種各樣的鏡像,。譬如DaoCloud鏡像市場(chǎng),網(wǎng)易蜂巢等,,國(guó)內(nèi)的鏡像市場(chǎng)下載速度相對(duì)快一些,。 我們下載個(gè)鏡像來(lái)試試。
通過(guò)docker images可以看到已經(jīng)下載完了Tomcat鏡像,,下面啟動(dòng)它,。 - docker run -d -p 8080:8080 tomcat
基礎(chǔ)命令網(wǎng)上多的是,就不解釋了,。 然后用ip:8080訪(fǎng)問(wèn)Tomcat看看效果,,如果訪(fǎng)問(wèn)不到請(qǐng)先看看服務(wù)器的安全組策略,是否開(kāi)放了相應(yīng)端口,。因?yàn)槟J(rèn)只開(kāi)啟了22端口,,別的端口可能需要手工開(kāi)啟。
4 Springboot部署到docker及運(yùn)行DaoCloud也有個(gè)例子可供參考:http://guide./dcs/docker-java-spring-boot-9153934.html 由于我們要演示SpringBoot部署到docker,所以我們需要一個(gè)包含了maven和java的鏡像,,當(dāng)然也可以選擇直接安裝一個(gè)Ubuntu之類(lèi)的系統(tǒng)再安裝java,。 這樣的鏡像有很多,官方的有maven:3-jdk-8 maven:3.3.3 這些都是帶著maven和Java的,,已經(jīng)可以用來(lái)跑Springboot項(xiàng)目了,。不過(guò)我后來(lái)找到了一個(gè)速度更快的,而且maven依賴(lài)的是阿里云maven的,,眾所周知,,官方maven速度極慢,一般用阿里云的maven,。
- docker pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
這個(gè)是maven+java8的鏡像,,而且來(lái)自網(wǎng)易蜂巢,速度快,。改自maven官方鏡像,,里面的maven更改為了阿里云的,下載maven更快,。 平時(shí)大家需要什么鏡像時(shí),,最好先到國(guó)內(nèi)的這些鏡像市場(chǎng)看看,常用的基本都有人配好了,,下載快很多,。
下載完上面的鏡像后,我們就來(lái)構(gòu)建一個(gè)Springboot項(xiàng)目,,添加Dockerfile文件到根目錄,。我直接在本地創(chuàng)建項(xiàng)目,添加一個(gè)簡(jiǎn)單的Controller,。
- @RestController
- public class DockerDemoSpringBootApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(DockerDemoSpringBootApplication.class, args);
- }
-
- @RequestMapping("")
- public String hello(){
- return "Hello! Docker!";
- }
- }
-
Dockerfile: - FROM hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
-
- ADD pom.xml /tmp/build/
-
- ADD src /tmp/build/src
- #構(gòu)建應(yīng)用
- RUN cd /tmp/build && mvn clean package \
- #拷貝編譯結(jié)果到指定目錄
- && mv target/*.jar /app.jar \
- #清理編譯痕跡
- && cd / && rm -rf /tmp/build
-
- VOLUME /tmp
- EXPOSE 8080
- ENTRYPOINT ["java","-jar","/app.jar"]
然后通過(guò)ftp工具上傳到云服務(wù)器,,我使用的filezilla,主機(jī)填寫(xiě)服務(wù)器ip,用戶(hù)名root,,密碼是服務(wù)器密碼,,連接后即可傳文件給云服務(wù)器了
我們把本地創(chuàng)建好的項(xiàng)目上傳上去。然后在服務(wù)器命令行,,進(jìn)入項(xiàng)目根目錄,,并執(zhí)行docker build命令,,docker就會(huì)根據(jù)Dockerfile里你定義好的命令進(jìn)行構(gòu)建新的鏡像,。 -t代表要構(gòu)建的鏡像的tag,.代表當(dāng)前目錄,,也就是Dockerfile所在的目錄,。 然后就可以看到在下載各種依賴(lài)的maven、各種jar,構(gòu)建完畢后,,啟動(dòng)項(xiàng)目,。
我們可以看到構(gòu)建完畢的鏡像testdocker,啟動(dòng)它,,使用8088端口映射程序里默認(rèn)的8080,。 在外部瀏覽器訪(fǎng)問(wèn): 這樣我們就成功部署了一個(gè)Springboot項(xiàng)目了。如果要說(shuō),,怎么連接數(shù)據(jù)庫(kù),,redis之類(lèi)的,我建議使用云端服務(wù),,云redis,、云數(shù)據(jù)庫(kù),不建議在docker內(nèi)安裝這些,,因?yàn)橛昧薲ocker,,多數(shù)情況下會(huì)啟動(dòng)多個(gè)實(shí)例,如果每個(gè)實(shí)例都有自己的數(shù)據(jù)庫(kù),、redis,,那么數(shù)據(jù)就無(wú)法同步了。
至于如何在mac上和Windows尚搭建本地的docker環(huán)境,,可以去DaoCloud下載相應(yīng)的包,,http://get./,安裝完后,,就有了docker環(huán)境了,,后續(xù)的操作就和上面一樣了。 后面我們學(xué)習(xí)使用Rancher來(lái)管理部署docker,,就不用手工在命令行去敲命令管理docker了,。
|