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模式的桥接网卡不同。