找回密码
 立即注册
首页 业界区 安全 docker-compose

docker-compose

锟及 7 天前
1、docker-compose

1、是什么


  • 通过编写yaml文件来编写
  • 能够集中的管理多个容器,集中的创建,删除等操作
  • 小的环境会使用这个compose
1、为什么需要docker compose


  • 部署一个应用程序

    • 前端web服务器
    • 后端api服务
    • 数据库
    • 一个缓存服务

  • 没有docker compose的话,就需要为每个服务单独编写dockerfile
  • 分别构建镜像
  • 使用了dockcer compose话,将所有服务配置统一在docker-compose.yml文件中
  • 一键部署这些服务,不需要逐个的启动
  • 轻松创建隔离的开发,测试和生成环境
2、安装docker-compose


  • 如果是linux 7非常的麻烦,因为涉及到安装python
  • 还有需要安装docker-compose-plugin
  • 但是8以上就自动的安装了docker compose了
3、格式


  • 层次结构非常的明显
  • 不能使用tab键,用空格缩进
  • 大小写敏感
  • 同一个层级需要左对齐
1、services级别


  • 定义的服务名
  1. services:
  2.   web:  # 服务的名字
  3.     build:  # 构建镜像
  4.       context: ./dir  # 基于这个目录构建镜像
  5.       dockerfile: dockerfile  # 指定文件名
  6.       tags:
  7.         - "123"  # 基于这个镜像创建的容器名,当然后面的话,后续的话,可以省略掉,后面的image就相当于是使用了
  8.     image: webapp:tag
  9.     container_name: web_ctr # 固定容器名
  10.     ports:
  11.       - "80:80"  # 主机端口:容器端口
  12.     networks:
  13.       - front # 连接的网络
  14.     depends_on:
  15.       - redis # 启动顺序
  16.     environment:
  17.       - rootpasswd=123 # 设置的环境变量
  18.     volumes:
  19.       - ./data:/app/data # 绑定挂载,宿主机直接挂载到容器里面去即可
  20.     restart: always  # 重启策略
复制代码
2、networks级别
  1. networks:
  2.   front:  # 用户自定义网络名,桥接类型的
  3.     driver: bridge
  4.   back:
  5.     driver: bridge
复制代码
3、volumes级别
  1. volumes:
  2.   db-data:  # 宿主机创建卷
  3.     driver: local
复制代码
4、version级别
  1. compose级别 2之上的可以不写这个参数
复制代码
4、搭建一个博客
  1. [root@docker ~]# cat dockercompose.yaml
  2. services:
  3.   blog:
  4.     image: wordpress:latest
  5.     restart: always
  6.     links:
  7.       - db:dbhehe
  8.     ports:
  9.       - "80:80"
  10.     environment:
  11.       - WORDPRESS_DB_HOST=dbhehe
  12.       - WORDPRESS_DB_USER=root
  13.       - WORDPRESS_DB_PASSWORD=root
  14.       - WORDPRESS_DB_NAME=wordpress
  15.   db:
  16.     image: mysql:latest
  17.     restart: always
  18.     environment:
  19.       - MYSQL_ROOT_PASSWORD=root
  20.       - MYSQL_DATABASE=wordpress
  21. # 后端运行即可
  22. docker compose -f 文件名 up -d
复制代码
5、自定一个nginx



  1. [root@docker ~]# cat docker-compose.yaml
  2. services:
  3.   web:
  4.     build:
  5.       context: .
  6.       dockerfile: "123"
  7.     image: centos:11  # 镜像名
  8.     container_name: web_ctr  # 容器名
  9.     ports:
  10.       - "80:80"
  11.     restart: always
  12.     volumes:
  13.       - /root/index.html:/usr/share/nginx/html/index.html  # 挂载到这个文件
  14.       - db:/etc/nginx/  # 将这个卷挂载到这个目录里面去
  15.     networks:
  16.       - web-net  # 设置网络
  17. networks:  # 创建网络
  18.   web-net
  19. volumes:
  20.   db:  # 创建卷,是一个目录
  21.     driver:local
复制代码
2、docker compose语法
  1. [root@docker ~]# docker compose  --help
  2. Usage:  docker compose [OPTIONS] COMMAND
  3. Define and run multi-container applications with Docker
  4. Options:
  5.       --all-resources              Include all resources, even those not used by services
  6.       --ansi string                Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
  7.       --compatibility              Run compose in backward compatibility mode
  8.       --dry-run                    Execute command in dry run mode
  9.       --env-file stringArray       Specify an alternate environment file
  10.   -f, --file stringArray           Compose configuration files
  11.       --parallel int               Control max parallelism, -1 for unlimited (default -1)
  12.       --profile stringArray        Specify a profile to enable
  13.       --progress string            Set type of progress output (auto, tty, plain, quiet) (default "auto")
  14.       --project-directory string   Specify an alternate working directory
  15.                                    (default: the path of the, first specified, Compose file)
  16.   -p, --project-name string        Project name
  17. Commands:
  18.   attach      Attach local standard input, output, and error streams to a service's running container
  19.   build       Build or rebuild services
  20.   config      Parse, resolve and render compose file in canonical format
  21.   cp          Copy files/folders between a service container and the local filesystem
  22.   create      Creates containers for a service
  23.   down        Stop and remove containers, networks
  24.   events      Receive real time events from containers
  25.   exec        Execute a command in a running container
  26.   images      List images used by the created containers
  27.   kill        Force stop service containers
  28.   logs        View output from containers
  29.   ls          List running compose projects
  30.   pause       Pause services
  31.   port        Print the public port for a port binding
  32.   ps          List containers
  33.   pull        Pull service images
  34.   push        Push service images
  35.   restart     Restart service containers
  36.   rm          Removes stopped service containers
  37.   run         Run a one-off command on a service
  38.   scale       Scale services
  39.   start       Start services
  40.   stats       Display a live stream of container(s) resource usage statistics
  41.   stop        Stop services
  42.   top         Display the running processes
  43.   unpause     Unpause services
  44.   up          Create and start containers
  45.   version     Show the Docker Compose version information
  46.   wait        Block until the first service container stops
  47.   watch       Watch build context for service and rebuild/refresh containers when files are updated
  48. Run 'docker compose COMMAND --help' for more information on a command.
复制代码
1、创建容器
  1. docker compose up -d # 后台运行
  2. docker compose -f 文件名 up -d
复制代码
2、删除容器
  1. docker compose down -v # 彻底删除,包括容器卷
复制代码
3、查看集群容器
  1. docker compose ps
复制代码
4、查看日志
  1. docker compose logs 服务名
复制代码
5、典型的 Docker Compose 工作流如下:

1.编写 Dockerfile: 为每个服务(如果需要自定义镜像)编写 Dockerfile。
2.编写 docker-compose.yml: 定义所有服务、端口、卷、网络等配置。
3.启动应用程序: 在 docker-compose.yml 所在的目录运行 docker compose up -d。
4.查看状态和日志: 使用 docker compose ps 和 docker compose logs 监控应用程序。
5.停止和移除: 当不再需要应用程序时,运行 docker compose down。
6.迭代和修改: 修改 Dockerfile 或 docker-compose.yml 后,再次运行 docker compose up --build -d 来更新和部署。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册