docker-compose常用命令及.yaml配置模板方式
作者:曹弘毅
这篇文章主要介绍了docker-compose常用命令及.yaml配置模板方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
docker-compose常用命令
docker-compose -f mysql-docker-compose.yaml up -d docker-compose -f mysql-docker-compose.yaml down
docker-compose的常用命令包括:
docker-compose up
:启动并运行Compose文件中的服务。docker-compose stop
:停止Compose文件中的服务。docker-compose restart
:重启Compose文件中的服务。docker-compose down
:停止并删除Compose服务,同时删除网络、卷和镜像。docker-compose ps
:列出Compose服务中的容器。docker-compose logs
:查看Compose服务中的容器的日志。docker-compose build
:构建Compose服务中的镜像。docker-compose pull
:拉取Compose服务中的镜像。docker-compose rm
:删除Compose服务中的容器。docker-compose start
:启动Compose服务中已停止的容器。docker-compose run
:在Compose服务中运行一个命令。docker-compose scale
:改变Compose服务中容器的数量。docker-compose pause
:暂停Compose服务中的容器。docker-compose kill
:强制停止Compose服务中的容器。docker-compose port
:显示Compose服务中容器的端口映射。docker-compose config
:验证和显示Compose文件的配置。docker-compose create
:基于Compose文件创建容器。docker-compose exec
:在Compose服务的容器中执行命令。docker-compose push
:将Compose服务中的镜像推送到Docker Hub或注册服务器。docker-compose unpause
:恢复Compose服务中容器的运行。
这些命令可以帮助你管理Docker Compose应用程序,包括启动、停止、重启、构建、拉取、删除等操作。
docker-compose.yml配置模板通常包含以下内容
docker-compose.yml配置模板通常包含以下内容:
- 服务定义:在模板中为每个服务定义一个条目,指定服务的名称、镜像、构建指令、环境变量、网络等配置。
- 镜像:指定服务使用的Docker镜像。可以使用本地镜像或公共镜像,也可以使用Dockerfile构建自定义镜像。
- 构建指令:如果使用自定义镜像,可以在模板中指定Dockerfile的位置和构建参数。
- 环境变量:为服务配置环境变量,可以通过键值对的形式设置。
- 端口映射:将容器的端口映射到主机端口,以使容器服务可访问。
- 卷挂载:将主机目录或文件挂载到容器中,以便持久化存储数据或共享数据。
- 网络:定义服务所在的网络,可以选择默认网络或自定义网络。
- 命令:指定容器启动后运行的命令。
- 容器链接:将一个服务的容器链接到另一个服务的容器,以便它们可以相互通信。
- 其他选项:根据需要配置其他选项,如CPU和内存限制、日志驱动程序等。
version: "3" services: sky-inspect-front: image: repository.dayu.work/brace/sky-inspect-frontend:jenkins-sky-inspect-frontend-pre-874842-1 restart: always container_name: sky-inspect-front ports: - "30082:8080" env_file: - .env networks: - sky-net extra_hosts: - "rds-migration03.mysql.rds.ops.topcloud.fdb.com:189.33.65.196" sky-inspect-back: image: repository.dayu.work/brace/sky-inspect-backend:jenkins-sky-inspect-backend-pre-804072-6 restart: always container_name: sky-inspect-back volumes: - './files:/app/files:rw' env_file: - .env environment: - META_DB_SCHEMA=sky_inspect networks: - sky-net extra_hosts: - "rds-migration03.mysql.rds.ops.topcloud.fdb.com:189.33.65.196" sky-inspect-mini: image: repository.dayu.work/brace/sky-inspect-mini:jenkins-sky-inspect-mini-pre-870320-2 restart: always container_name: sky-inspect-mini volumes: - './files:/app/files:rw' env_file: - .env environment: - SIM_ROLE=MASTER - META_DB_SCHEMA=sky_inspect_mini networks: - sky-net logging: driver: "json-file" options: max-size: "1g" extra_hosts: - "rds-migration03.mysql.rds.ops.topcloud.fdb.com:189.33.65.196" sky-inspect-mini-leader: image: repository.dayu.work/brace/sky-inspect-mini:jenkins-sky-inspect-mini-pre-870320-2 restart: always volumes: - './files:/app/files:rw' - './files/log:/app/log:rw' env_file: - .env networks: - sky-net entrypoint: - java - -server - -Xms8g - -Xmx8g - -Xmn6g - -XX:SurvivorRatio=8 - -Dfile.encoding=UTF-8 - -Dproject.name=SIM - -jar - -Duser.timezone=GMT+08 - start-1.0-SNAPSHOT.jar environment: - SIM_ROLE=LEADER - META_DB_SCHEMA=sky_inspect_mini logging: driver: "json-file" options: max-size: "1g" extra_hosts: - "rds-migration03.mysql.rds.ops.topcloud.fdb.com:189.33.65.196" - "service.cn-kunming-fdtest-d01.odps.res.cloud-test.fudian-bank.com:196.36.88.96" - "dt.cn-kunming-fdtest-d01.odps.res.cloud-test.fudian-bank.com:196.36.88.104" sky-data-source: image: repository.dayu.work/brace/data-source-backend:jenkins-data-source-backend-daily-862940-6 restart: always container_name: sky-data-source volumes: - './files:/app/files:rw' env_file: - .env environment: - META_DB_SCHEMA=sky_data_source networks: - sky-net extra_hosts: - "rds-migration03.mysql.rds.ops.topcloud.fdb.com:189.33.65.196" mysql: image: mysql:5.7 container_name: mysql env_file: - .env ports: - "30036:3306" restart: always volumes: - ./mysql/config-file.cnf:/etc/mysql/conf.d/config-file.cnf - ./mysql/data:/var/lib/mysql - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql - /etc/hosts:/etc/hosts healthcheck: test: mysqladmin ping -h127.0.0.1 -uroot --password=123xxxxxx interval: 1s timeout: 3s retries: 10 networks: - sky-net networks: sky-net: driver: bridge
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。