使用docker部署SpringCloud項(xiàng)目

準(zhǔn)備工作

  • JDK1.8
  • Docker1.12.1
  • CentOS7.0

1.CentOS7.0下JDK1.8的安裝

1阀圾、到Oracle官網(wǎng)下載好 jdk-8u181-linux-x64.tar.gz 備用

2、卸載系統(tǒng)自帶的java

java -version           # 如果有結(jié)果出來(lái),則說(shuō)明自帶了java
rpm -qa|grep java       # 查詢(xún)出已經(jīng)安裝的java
yum -y remove [上面查出來(lái)的東西,多個(gè)用空格分隔]

3捎稚、安裝jdk

cd /usr            #進(jìn)入到要安裝jdk的目錄
mkdir java         #創(chuàng)建java目錄,將jdk-8u181-linux-x64.tar.gz上傳到此目錄
tar -zxvf jdk-8u181-linux-x64.tar.gz     #將jdk壓縮包解壓安裝

4、配置環(huán)境變量

vim /etc/profile      #打開(kāi)文件并編輯

找到:export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 這一行雀费,并在其下面一行添加如下內(nèi)容:

# 設(shè)置java環(huán)境變量
export JAVA_HOME=/usr/java/jdk1.8.0_181 # 根據(jù)情況修改
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使環(huán)境變量生效

source /etc/profile    

測(cè)試安裝

java -version

2.Docker的安裝

1干奢、查看內(nèi)核版本(Docker需要64位版本痊焊,同時(shí)內(nèi)核版本在3.10以上,如果版本低于3.10忿峻,需要升級(jí)內(nèi)核)

uname -r

2薄啥、更新yum包:

yum update

3、添加yum倉(cāng)庫(kù):

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

4逛尚、安裝Docker

yum install docker-engine

5垄惧、啟動(dòng)Docker

service docker start

6、配置docker遠(yuǎn)程訪問(wèn)

執(zhí)行命令編輯文件

vim /usr/lib/systemd/system/docker.service

找到這一行

ExecStart=/usr/bin/dockerd 

改為

 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H
 unix:///var/run/docker.sock

修改完成后保存并重啟Docker

 service docker restart

測(cè)試訪問(wèn) http://125.35.86.214:2375/version 如果有返回?cái)?shù)據(jù)則配置成功绰寞。

7到逊、使用Docker國(guó)內(nèi)鏡像(為Docker鏡像下載提速,非必須)

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
http://fe8a7d6e.m.daocloud.io

3.Docker Compose的安裝

1滤钱、下載docker-compose 觉壶,并放到/usr/local/bin/

https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname
-s`-`uname -m` > /usr/local/bin/docker-compose

2、為Docker Compose腳本添加執(zhí)行權(quán)限

chmod +x /usr/local/bin/docker-compose

3件缸、安裝完成铜靶,測(cè)試

docker-compose --version

結(jié)果顯示:

docker-compose version 1.8.0, build f3628c7

說(shuō)明Docker Compose已經(jīng)安裝完成了。

4.Docker使用Maven插件構(gòu)建并上傳鏡像

1他炊、新建Dockerfile文件

在項(xiàng)目的/src/main下新增文件夾docker争剿,并在文件夾下創(chuàng)建Dockerfile文件,文件內(nèi)容如下

# 基于哪個(gè)鏡像
FROM java:8
# 將本地文件夾掛載到當(dāng)前容器
VOLUME /tmp
# 拷貝文件到容器痊末,handcuffs-reg-0.0.1-SNAPSHOT.jar這里是maven打包后的名字
ADD handcuffs-reg-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
# 配置容器啟動(dòng)后執(zhí)行的命令
ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

2蚕苇、修改pom.xml文件增加如下plugin

  • imageName:鏡像名稱(chēng)
  • dockerDirectory:Dockerfile文件所在目錄
  • dockerHost:docker所在宿主機(jī)ip 2375為docker開(kāi)啟的遠(yuǎn)程訪問(wèn)端口

其他配置采取默認(rèn)即可

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.14</version>
    <configuration>
        <imageName>reg-service</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
         <dockerHost>http://125.35.86.214:2375</dockerHost>
           <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <directory>${project.build.directory}</directory>
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
    </configuration>
</plugin>

每一個(gè)微服務(wù)項(xiàng)目都要進(jìn)行配置。

3凿叠、構(gòu)建鏡像并上傳至docker

使用maven運(yùn)行如下命令

clean package docker:build -DskipTests

上傳成功后捆蜀,在服務(wù)器輸入

docker images

可以看到所有的docker鏡像啦。

5.使用Docker Compose進(jìn)行服務(wù)編排

1幔嫂、在服務(wù)器任意目錄辆它,新建文件docker-compose.yml

version: '2'
services:
  eureka-server1:              #自定義服務(wù)名--注冊(cè)中心
    restart: on-failure
    image: reg-service         #鏡像名稱(chēng)
    ports:
      - "8761:8761"            #映射的端口
    networks:
      - eureka-net             #網(wǎng)絡(luò)模式
    environment:               #環(huán)境變量
      SERVER_PORT: "8761"      #自定義參數(shù)用于給服務(wù)的配置文件傳遞參數(shù)

  config:                      #自定義服務(wù)名--配置中心
    image: config-service      #鏡像名稱(chēng)  
    networks:
      - eureka-net             #網(wǎng)絡(luò)模式
    ports:
      - "8091:8091"            #映射的端口
    environment:               #環(huán)境變量配置
      REGISTER_URL: "http://114.115.185.152:8761/eureka/" 
      SERVER_PORT: "8091"
      SERVER_GIT_URL:  "https://gitee.com/deanTheOne/handcuffs-config.git"
      SERVER_GIT_USERNAME: "test"
      SERVER_GIT_PASSWORD: "test"
      RABBITMQ_HOST: "39.105.152.144"
      RABBITMQ_PORT: "5672"
      RABBITMQ_USERNAME: "mqTest"
      RABBITMQ_PASSWORD: "mqTest"

#網(wǎng)關(guān)配置參考上面    
  zuul:
    restart: on-failure
    image: gateway-service
    ports:
      - "8000:8000"
    environment:
      REGISTER_URL: "http://114.115.185.152:8761/eureka/"
      SERVER_PORT: "8000"
      SERVER_ADDR: "114.115.185.152"
    networks:
      - eureka-net
networks:
  eureka-net:

    driver: bridge

文件編寫(xiě)完畢保存,切換到當(dāng)前文件所在目錄履恩,輸入命令啟動(dòng)Docker Compose

docker-compose -f docker-compose.yml up -d

停止Docker Compose命令

docker-compose -f docker-compose.yml down
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锰茉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子切心,更是在濱河造成了極大的恐慌飒筑,老刑警劉巖片吊,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異协屡,居然都是意外死亡俏脊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)肤晓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)爷贫,“玉大人,你說(shuō)我怎么就攤上這事补憾÷眩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵盈匾,是天一觀的道長(zhǎng)腾务。 經(jīng)常有香客問(wèn)我,道長(zhǎng)削饵,這世上最難降的妖魔是什么岩瘦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮窿撬,結(jié)果婚禮上启昧,老公的妹妹穿的比我還像新娘。我一直安慰自己尤仍,他們只是感情好箫津,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宰啦,像睡著了一般苏遥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赡模,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天田炭,我揣著相機(jī)與錄音,去河邊找鬼漓柑。 笑死教硫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辆布。 我是一名探鬼主播瞬矩,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锋玲!你這毒婦竟也來(lái)了景用?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惭蹂,失蹤者是張志新(化名)和其女友劉穎伞插,沒(méi)想到半個(gè)月后割粮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媚污,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舀瓢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耗美。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡京髓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幽歼,到底是詐尸還是另有隱情朵锣,我是刑警寧澤谬盐,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布甸私,位于F島的核電站,受9級(jí)特大地震影響飞傀,放射性物質(zhì)發(fā)生泄漏皇型。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一砸烦、第九天 我趴在偏房一處隱蔽的房頂上張望弃鸦。 院中可真熱鬧,春花似錦幢痘、人聲如沸唬格。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)购岗。三九已至,卻和暖如春门粪,著一層夾襖步出監(jiān)牢的瞬間喊积,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工玄妈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乾吻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓拟蜻,卻偏偏與公主長(zhǎng)得像绎签,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酝锅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351