docker-compose是docker編排工具绣檬,用于管理docker容器娇未,在如今的微服務(wù)時代零抬,一個項目會存在多個服務(wù),使用docker一個個部署操作的話就會很麻煩蝶棋,如果使用docker編排工具一鍵部署忽妒,統(tǒng)一管理就會便捷很多锰扶,同時也提高了開發(fā)坷牛,運維效率
本文以nginx及.net core項目為例很澄,實驗docker-compose容器編排
一甩苛、概念
1.什么是容器編排
容器編排即是在docker客戶端與docker服務(wù)器之前加入一個容器編排,通過容器編排的操作一次執(zhí)行便可將整個微服務(wù)系統(tǒng)一鍵全部的部署在docker容器
image.png
2.services概念
在docker-compose配置中痊土,需要通過services配置鏡像和容器,即services為多個鏡像和容器的集合墨林,可以用數(shù)組或字典兩種方式
image.png
3.yml配置屬性說明
yml文件配置參考地址:https://www.runoob.com/w3cnote/yaml-intro.html
核心配置:
version #指定compose版本 最好是3.0以上版本 目前最新是3.8版本
services #配置容器[容器列表]
nginx: #配置容器標識(唯一編號)
image: #配置容器鏡像
ports: #配置容器映射端口號[數(shù)組]
networks: #配置容器網(wǎng)絡(luò)[數(shù)組]
networks #網(wǎng)絡(luò)指定配置
nginx-rmcore: #配置網(wǎng)絡(luò)名稱
external: true #網(wǎng)絡(luò)自定義
volumes #數(shù)據(jù)掛載配置
extensions #擴展配置
二赁酝、容器編排
1.安裝docker-compose
下載地址
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
設(shè)置compose權(quán)限
chmod +x /usr/local/bin/docker-compose
驗證是否安裝成功,能正常看到版本號即安裝成功
docker-compose --version
2.編寫yml配置
ps:需要注意每個配置 :后面需要空一格 旭等,否則解析不了
version: '3'
services:
dockerdemo:
build: dockerDemo #這里沒有鏡像所以build構(gòu)建鏡像
ports:
- 8080:80
- 8081:443
nginxdemo:
build: nginx
ports:
- 5000:80
ps:由于nginx手動啟動比較麻煩酌呆,這里分享一下使用腳本命令啟動^ _ ^
nginx腳本配置
#!/bin/sh
/usr/local/nginx/sbin/nginx
/bin/bash -c 'while true; do sleep 200; done'
dockerfile配置
FROM centos
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
WORKDIR /nginx
COPY nginx-1.15.2.tar.gz /nginx
RUN tar -zxvf nginx-1.15.2.tar.gz
RUN cd nginx-1.15.2 && ./configure && make && make install
EXPOSE 80
#將腳本拷貝到容器目錄
COPY nginx.sh /nginx.sh
#設(shè)置最大權(quán)限
RUN chmod 755 /nginx.sh
#運行腳本
CMD ["/nginx.sh"]
3.構(gòu)建并啟動容器
輸入下面命令構(gòu)建啟動容器
docker-compose up -d
構(gòu)建并啟動完成
image.png
訪問結(jié)果:
image.png
image.png
反向代理可參考:docker nginx反向代理
docker-compose使用命令
build 構(gòu)建或重新構(gòu)建容器服務(wù)
bundle 從compose文件生成一個Docker包
config 驗證并查看compose文件
create 創(chuàng)建容器服務(wù)
down 停止并刪除容器、網(wǎng)絡(luò)搔耕、映像和卷
events 從容器接收實時事件
exec 在正在運行的容器中執(zhí)行命令
help 幫助命令
images 鏡像列表
kill 殺死容器
logs 查看容器的日志
pause 暫停容器服務(wù)
port 輸出端口號
ps 容器列表
pull 下載容器服務(wù)鏡像
push 上傳容器服務(wù)鏡像
restart 容器服務(wù)重新開始
rm 刪除停止的容器
run 運行一次性命令
scale 設(shè)置服務(wù)的容器數(shù)量
start 開始容器服務(wù)
stop 停止容器服務(wù)
top 顯示正在運行的進程
unpause 暫停容器服務(wù)
up 創(chuàng)建并啟動容器
version 顯示Docker-Compose版本信息