準(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