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级别
- services:
- web: # 服务的名字
- build: # 构建镜像
- context: ./dir # 基于这个目录构建镜像
- dockerfile: dockerfile # 指定文件名
- tags:
- - "123" # 基于这个镜像创建的容器名,当然后面的话,后续的话,可以省略掉,后面的image就相当于是使用了
- image: webapp:tag
- container_name: web_ctr # 固定容器名
- ports:
- - "80:80" # 主机端口:容器端口
- networks:
- - front # 连接的网络
- depends_on:
- - redis # 启动顺序
- environment:
- - rootpasswd=123 # 设置的环境变量
- volumes:
- - ./data:/app/data # 绑定挂载,宿主机直接挂载到容器里面去即可
- restart: always # 重启策略
复制代码 2、networks级别
- networks:
- front: # 用户自定义网络名,桥接类型的
- driver: bridge
- back:
- driver: bridge
复制代码 3、volumes级别
- volumes:
- db-data: # 宿主机创建卷
- driver: local
复制代码 4、version级别
4、搭建一个博客
- [root@docker ~]# cat dockercompose.yaml
- services:
- blog:
- image: wordpress:latest
- restart: always
- links:
- - db:dbhehe
- ports:
- - "80:80"
- environment:
- - WORDPRESS_DB_HOST=dbhehe
- - WORDPRESS_DB_USER=root
- - WORDPRESS_DB_PASSWORD=root
- - WORDPRESS_DB_NAME=wordpress
- db:
- image: mysql:latest
- restart: always
- environment:
- - MYSQL_ROOT_PASSWORD=root
- - MYSQL_DATABASE=wordpress
- # 后端运行即可
- docker compose -f 文件名 up -d
复制代码 5、自定一个nginx
- [root@docker ~]# cat docker-compose.yaml
- services:
- web:
- build:
- context: .
- dockerfile: "123"
- image: centos:11 # 镜像名
- container_name: web_ctr # 容器名
- ports:
- - "80:80"
- restart: always
- volumes:
- - /root/index.html:/usr/share/nginx/html/index.html # 挂载到这个文件
- - db:/etc/nginx/ # 将这个卷挂载到这个目录里面去
- networks:
- - web-net # 设置网络
- networks: # 创建网络
- web-net
- volumes:
- db: # 创建卷,是一个目录
- driver:local
复制代码 2、docker compose语法
- [root@docker ~]# docker compose --help
- Usage: docker compose [OPTIONS] COMMAND
- Define and run multi-container applications with Docker
- Options:
- --all-resources Include all resources, even those not used by services
- --ansi string Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
- --compatibility Run compose in backward compatibility mode
- --dry-run Execute command in dry run mode
- --env-file stringArray Specify an alternate environment file
- -f, --file stringArray Compose configuration files
- --parallel int Control max parallelism, -1 for unlimited (default -1)
- --profile stringArray Specify a profile to enable
- --progress string Set type of progress output (auto, tty, plain, quiet) (default "auto")
- --project-directory string Specify an alternate working directory
- (default: the path of the, first specified, Compose file)
- -p, --project-name string Project name
- Commands:
- attach Attach local standard input, output, and error streams to a service's running container
- build Build or rebuild services
- config Parse, resolve and render compose file in canonical format
- cp Copy files/folders between a service container and the local filesystem
- create Creates containers for a service
- down Stop and remove containers, networks
- events Receive real time events from containers
- exec Execute a command in a running container
- images List images used by the created containers
- kill Force stop service containers
- logs View output from containers
- ls List running compose projects
- pause Pause services
- port Print the public port for a port binding
- ps List containers
- pull Pull service images
- push Push service images
- restart Restart service containers
- rm Removes stopped service containers
- run Run a one-off command on a service
- scale Scale services
- start Start services
- stats Display a live stream of container(s) resource usage statistics
- stop Stop services
- top Display the running processes
- unpause Unpause services
- up Create and start containers
- version Show the Docker Compose version information
- wait Block until the first service container stops
- watch Watch build context for service and rebuild/refresh containers when files are updated
- Run 'docker compose COMMAND --help' for more information on a command.
复制代码 1、创建容器
- docker compose up -d # 后台运行
- docker compose -f 文件名 up -d
复制代码 2、删除容器
- docker compose down -v # 彻底删除,包括容器卷
复制代码 3、查看集群容器
4、查看日志
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 来更新和部署。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |