Docker Compose是容器編排工具,用來定義和執行由多個容器組成的應用。使用 compose,可以通過
yaml檔案定義應用程式的各個服務,並由單個命令完成應用的建立和啟動。允許使用者在一個模板(yaml格式)中定義一組相關聯的容器,會根據–link等引數,對啟動的優先順序進行排序。
YUML是一種 標示語言很直觀的資料序列化格式
檔案格式及編寫注意事項
不支援製表符tab鍵縮排,需要使用空格縮排
通常開頭縮排兩個空格
字元后縮排1個空格,如冒號、逗號、橫杆
用#號註釋
如果包含特殊字元用單引號引起來
布林值必須用引號括起來
docker-compose -h # 檢視幫助
docker-compose up # 建立並執行所有容器
docker-compose up -d # 建立並後臺執行所有容器
docker-compose ps # 顯示所用容器資訊
docker-compose -f docker-compose.yml up -d # 指定模板
docker-compose down # 停止並刪除容器、網路、卷、映象。
docker-compose rm # 刪除容器
docker-compose logs # 檢視容器輸出紀錄檔
docker-compose pull # 拉取依賴映象
dokcer-compose config # 檢查設定
dokcer-compose config -q # 驗證yaml組態檔是否正確,有問題才有輸出
docker-compose pause # 暫停容器
docker-compose unpause # 恢復暫停
docker-compose restart # 重新啟動服務
docker-compose start # 啟動服務
docker-compose stop : # 停止服務
docker-compose [options][COMMAND][ARGS...]
--verbose 輸出更多偵錯資訊
--version 列印版本並退出
-f,--file FILE使用特定的compose模板檔案,預設為docker-compose.yml
-p,--project-name NAME指定專案名稱,預設使用目錄名稱
[root@localhost ~]# rz -E
rz waiting to receive.
#給下載好的docker-compose賦予許可權
[root@localhost ~]# chmod +x docker-compose
#將下載好的docker-compose複製到/usr/local/bin目錄下
[root@localhost ~]# cp -p docker-compose /usr/local/bin/
(將nginx軟體包拷貝到nginx目錄下)
[root@localhost compose_nginx]# mkdir nginx
[root@localhost compose_nginx]# cd nginx/
[root@localhost nginx]# vim Dockerfile
FROM centos:7
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
'//編寫啟動指令碼'
[root@localhost nginx]# vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
#把nginx包複製到nginx目錄
[root@localhost nginx]# ls
Dockfile nginx-1.12.0.tar.gz run.sh
[root@localhost nginx]# cd ..
[root@localhost compose_nginx]# vim docker-compose.yml
'//冒號後面注意有空格'
version: '3'
services:
nginx:
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 1216:80
- 1217:443
networks:
- cluster
volumes:
- ./wwwroot:/usr/local/nginx/html
networks:
cluster:
#執行開啟
[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d
[root@localhost compose_nginx]# ls
docker-compose.yml nginx wwwroot
#在站點目錄下建立一個網頁,用瀏覽器存取是否可以正常顯示
[root@localhost compose_nginx]# cd wwwroot/
'//編寫站點資訊'
[root@localhost wwwroot]# vim index.html
<h1>this is shuai web</h1>
#下載tree檢視組織結構
[root@localhost compose_nginx]# yum install tree -y
[root@localhost compose_nginx]# tree ./
./
├── docker-compose.yml
├── nginx
│ ├── Dockerfile
│ ├── nginx-1.12.0.tar.gz
│ └── run.sh
└── wwwroot
└── index.html
[root@localhost compose_nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
compose_nginx_nginx latest 178d32644ae3 13 minutes ago 480MB
centos 7 7e6257c9f8d8 6 weeks ago 203MB
#檢視容器
[root@localhost compose_nginx]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0874ae4fe802 compose_nginx_nginx "/run.sh" 13 minutes ago Up 13 minutes 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1
8fb37f271c31 centos:7 "/bin/bash" 2 hours ago Up 2 hours niu
本次實驗結束感謝觀看.