docker-compose入門示例
以下將啟動一個zabbix_server端作為compose的使用案例
docker命令啟動方式
啟動mysql
[root@wshile zabbix]# docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
啟動zabbix_server
[root@wshile zabbix]# docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
啟動一個nginx作為web
[root@wshile zabbix]# docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:8080 \
-d zabbix/zabbix-web-nginx-mysql:latest
這時候可以通過本機ip+端口進行訪問。
docker-compose方式啟動上面的服務
安裝docker-compose
[root@wshile zabbix]# yum -y install epel-release [root@wshile zabbix]# yum -y install python-pip [root@wshile zabbix]# pip install --upgrade pip [root@wshile zabbix]# pip install setuptools==33.1.1 [root@wshile zabbix]# pip install docker-compose [root@wshile zabbix]# pip uninstall urllib3 [root@wshile zabbix]# pip uninstall chardet [root@wshile zabbix]# pip install requests [root@wshile zabbix]# docker-compose version
配置docker-compose.yaml文件
version: '3'
services:
mysql-server:
image: mysql:5.7
container_name: mysql-server
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: zabbix
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:latest
container_name: zabbix-server-mysql
environment:
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: zabbix
ports:
- '10051:10051'
links:
- mysql-server
depends_on: # 以依賴循序啟動
- mysql-server
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-apache-mysql
container_name: zabbix-web-nginx-mysql
environment:
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: zabbix
ports:
- '8080:8080'
- '443:443'
links:
- mysql-server
- zabbix-server-mysql
depends_on:
- mysql-server
- zabbix-server-mysql
啟動服務
# 使用docker-compose啟動容器會默認創建一個bridge網絡 [root@wshile zabbix]# docker-compose up -d [root@wshile zabbix]# docker network ls NETWORK ID NAME DRIVER SCOPE 80c42b87d6f7 bridge bridge local bd710e00469e host host local f8086404d8d7 none null local ae40868e7e89 zabbix_default bridge local
同樣使用以上方式訪問服務,區別於使用bridge模式的橋接網卡不同。
