docker-compose
1、docker-compose1、是什么
[*]通过编写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: bridge3、volumes级别
volumes:
db-data:# 宿主机创建卷
driver: local4、version级别
compose级别 2之上的可以不写这个参数4、搭建一个博客
# 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
[*]
# 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:local2、docker compose语法
# docker compose--help
Usage:docker compose 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、查看集群容器
docker compose ps 4、查看日志
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 来更新和部署。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]