当前位置:   article > 正文

docker-compose的基本使用含yml文件基本使用_docker yml

docker yml

目录

一、docker-compose简介

二、docker-compose.yml详解

三、docker-compose.yml的demo

四、docker-compose常用命令

五、总结

六、历史文章指路

‍一、docker-compose简介

docker-compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。

为什么需要docker-compose?

一般我们一个完整的应用部署包括几个服务:Web应用、MySQL服务、Redis服务,有的可能用到Kafka服务、Prometheus服务等等。

那么如何管理这么多服务呢?我们就需要docker-compose来帮我们实现批量管理容器服务

接下来我们来看看docker-compose是如何批量管理容器服务的?这就说道docker-compose.yml了。

docker-compose.yml可以同时管理多个container,包括他们之间的关系、使用已存在的image还是自己build新的镜像 、各种网络端口定义、储存空间定义等。

然后我们可以用docker compose up -d完成应用所有容器的创建和启动。

ok,重点来了,我们来看看如何使用docker compose吧。

使用dockercompose 基本上分为三步:

1.使用Dockerfile定义镜像;

2.使用docker-compose.yml定义组成的应用程序的服务;

3.运行docker compose up启动并运行程序;

总结:dockerfile记录单个镜像的构建过程, docker-compse.yml记录一个项目(一般是多个镜像)的构建过程。

二、docker-compose.yml详解

一份标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分。

1.version:docker-compose 文件版本,可在https://docs.docker.com/compose/compose-file/compose-versioning/ 查看docker-compose文件版本支持特定的 Docker 版本。

2.services:服务名称,自定义。

3.networks:定义网络。实现了网络隔离。

三、docker-compose.yml的demo

以下定义了docker-compose-demo和 docker-compose-mysql-demo两个容器,相关指令解释可查看后面的注释。

  1. version : '3' #compose文件版本支持特定的Docker版本
  2. services: #本工程的服务配置列表
  3. docker-compose-demo: #服务名,自定义
  4. container_name: docker-compose-container-demo #容器名
  5. build: #基于Dockerfile文件构建镜像时使用的属性
  6. context: . #代表当前目录,也可以指定绝对路径[/path/test/Dockerfile]或相对路径[../test/Dockerfile],尽量放在当前目录,便于管理
  7. dockerfile: Dockerfile-demo #指定Dockerfile文件名
  8. ports:
  9. - "5555:6666" #指定宿主机端口映射到本容器的端口
  10. volumes:
  11. - .:/tmp
  12. #目录挂载
  13. depends_on: #本服务启动,依赖于mysql,也就是mysql优先于docker-compose-demo启动
  14. - mysql
  15. restart: always #是否随docker服务启动重启
  16. networks: #加入指定网络
  17. - my-network #自定义的网络名
  18. environment: #设置容器的环境变量
  19. - TZ=Asia/Shanghai #这里设置容器的时区为亚洲上海,也就解决了容器通过compose编排启动的时区问题
  20. mysql: #服务名,自定义
  21. container_name: docker-compose-mysql-demo #容器名
  22. image: mysql:5.7 #指定基于mysql:5.7镜像为基础镜像来构建镜像。ports:
  23. - "33061:3306"
  24. command: [ #使用command可以覆盖容器启动后默认执行的命令
  25. '--character-set-server=utf8mb4', #设置数据库表的数据集
  26. '--collation-server=utf8mb4_unicode_ci', #设置数据库表的数据集
  27. '--default-time-zone=+8:00' #设置mysql数据库的时区问题
  28. ]
  29. environment:
  30. MYSQL_DATABASE: swapping #设置初始的数据库名
  31. MYSQL_ROOT_PASSWORD: 398023 #设置root连接密码
  32. MYSQL_ROOT_HOST: '%'
  33. restart: always
  34. networks:
  35. - my-network
  36. networks:
  37. my-network: #自定义的网络

四、docker-compose常用命令

  1. #启动
  2. docker-compose -f /data/docker-compose/docker-compose.yml up -d
  3. #ps:列出所有运行容器
  4. docker-compose ps
  5. #logs:查看服务日志输出
  6. docker-compose logs
  7. #build:构建或者重新构建服务
  8. docker-compose build
  9. #start:启动指定服务已存在的容器
  10. docker-compose start docker-compose-demo
  11. #stop:停止已运行的服务的容器
  12. docker-compose stop docker-compose-demo
  13. #rm:删除指定服务的容器
  14. docker-compose rm docker-compose-demo
  15. #up:构建、启动容器
  16. docker-compose up
  17. #-d:后台运行
  18. docker-compose up -d
  19. #stop:停止容器
  20. docker-compose stop

五、总结

以上就是docker-compose的基本使用方式了。

回想起第一次接触docker-compose的时候,因为当时测试的一个服务需要再加一个容器,使用docker-compose up后面没有加 -d,导致关闭xshell就不能使用了,也是那时候开始对Docker这块内容有了更进一步的认知。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/74181?site
推荐阅读
相关标签
  

闽ICP备14008679号