锟及 发表于 2025-7-20 08:44:23

docker-compose

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: 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]
查看完整版本: docker-compose