Docker Compose 是什么
docker compose 通過docker-compose.yml是將多個服務(即容器)構建成一個專案,來完成某個需求,
Compose 的默認管理物件是專案,通過子命令對專案中的一組容器進行便捷地生命周期管理,
Docker Compose 安裝
安裝epl 軟體源
yum install -y epel-release
安裝python-pip
yum install -y python-pip
安裝Docker Compose
pip install docker-compose
查看Docker Compose 版本
docker-compose version
root@MiWiFi-R3-srv ~]# docker-compose version
docker-compose version 1.22.0, build f46880f
docker-py version: 3.5.0
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
Docker Compose 專案構建
通過Docker compose file 構建 wordpress 應用
撰寫 wordpress docker compose file 檔案
新建wordpress 檔案夾,并切換進入wordpress檔案夾
[root@localhost ~]# mkdir wordpress
[root@localhost ~]# cd wordpress/
[root@localhost wordpress]# ll
總用量 0
[root@localhost wordpress]# pwd
/root/wordpress
新建wordpress docker compose file 檔案
檔案名:docker-compose.yml
version: "3"
services:
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
Docker compose file 欄位決議
version:宣告構建專案的版本號
services:宣告此專案有幾個服務(容器)構成
db、wordpress: 服務名稱
image: 鏡像名稱(默認來自于docker官方鏡像倉庫)
mysql image 官方地址
wordpress image 官方地址
volumes: 掛載主機目錄到此服務中并給此目錄命名
使用命名卷必須先在首層docker file 檔案中宣告restart: 服務例外后的重啟方式
environment: 需要添加什么變數根據官方鏡像說明添加
ports: 主機埠和服務埠的映射關系
啟動wordpress docker compose 專案構建
docker-compose up -d
構成成功后的wordpress
wordpress 安裝成功后的界面
Docker compose 命令使用
Docker compose 指令必須在含有docker-compose.yml或者 docker-compose.yaml的目錄執行
查看compose 檔案含有的鏡像
docker-compose images
[root@localhost wordpress]# docker-compose images
Container Repository Tag Image Id Size
-------------------------------------------------------------------
wordpress_db_1 mysql latest 29e0ae3b69b9 462 MB
wordpress_wordpress_1 wordpress latest e2c4085bbc2b 389 MB
列出專案中所有的容器
docker-compose ps
[root@localhost wordpress]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------
wordpress_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
wordpress_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:80->80/tcp
停止專案中正在運行的容器
docker-compose stop
[root@localhost wordpress]# docker-compose stop
Stopping wordpress_wordpress_1 ... done
Stopping wordpress_db_1 ... done
洗掉專案中所有停止的容器
docker-compose rm
[root@localhost wordpress]# docker-compose rm
Going to remove wordpress_wordpress_1, wordpress_db_1
Are you sure? [yN] y
Removing wordpress_wordpress_1 ... done
Removing wordpress_db_1 ... done
構建專案鏡像并啟動
docker-compose up -d
[root@localhost wordpress]# docker-compose up -d
Creating wordpress_db_1 ... done
Creating wordpress_wordpress_1 ... done
啟動compose 專案中的容器
docker-compose start
[root@localhost wordpress]# docker-compose start
Starting db ... done
Starting wordpress ... done
指定專案中容器的啟動數量
docker-compose scale wordpress=3 db=2
[root@localhost wordpress]# docker-compose scale wordpress=3 db=2
WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.
Creating wordpress_db_1 ... done
Creating wordpress_db_2 ... done
Creating wordpress_wordpress_1 ... done
Creating wordpress_wordpress_2 ... done
Creating wordpress_wordpress_3 ... done
查看專案中服務對應系結的埠號
docker-compose port wordpress 80
[root@localhost wordpress]# docker-compose port wordpress 80
0.0.0.0:80
查看專案中服務的日志資訊
docker-compose logs -f wordpress
[root@localhost wordpress]# docker-compose logs -f wordpress
Attaching to wordpress_wordpress_1
wordpress_1 | WordPress not found in /var/www/html - copying now...
wordpress_1 | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | [Sun Aug 19 07:13:26.743777 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.8 configured -- resuming normal operations
wordpress_1 | [Sun Aug 19 07:13:26.743842 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33955.html
標籤:其他
上一篇:4. Docker資料管理
