# docker-compose **Repository Path**: xiaolixi/docker-compose ## Basic Information - **Project Name**: docker-compose - **Description**: docker-compose - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-21 - **Last Updated**: 2025-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # docker-compose 学了docker,然后就直接去学k8s了。恍恍惚惚几年过去了,k8s早就没有摸过,当然也就没有用过了。 日常工作也便没有了接触,但是容器化还是开发默认的设定,很多时候还是需要快速部署个测试环境。 这个时候使用docker一个个部署好麻烦,使用k8s当然也没有那个环境,此时docker-compose似乎是个好的选择。 这也是我为啥讲讲docker-compose的原因了。 ## docker-compose是什么 [ :pushpin: github docker-compose](https://github.com/docker/compose) Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is used to define how one or more containers that make up your application are configured. It also has commands for managing the whole lifecycle of your application: - Start, stop, and rebuild services - View the status of running services - Stream the log output of running services - Run a one-off command on a service ## Compose file format [https://github.com/compose-spec/compose-spec/blob/main/spec.md](https://github.com/compose-spec/compose-spec/blob/main/spec.md) The default path for a Compose file is `compose.yaml` (preferred) or `compose.yml` also supports `docker-compose.yaml` and `docker-compose.yml` If both files exist, Compose prefers the canonical `compose.yaml`. ## 命令 ```shell (base)  ~/ docker-compse --help zsh: permission denied: docker-compse (base)  ~/ docker-compose --help Usage: docker compose [OPTIONS] COMMAND Define and run multi-container applications with Docker. Options: --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: 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. start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show the Docker Compose version information ``` ### 服务相关命令 **通常我们都是使用docker-compose快速起服务,此时一般使用up启动整个服务,然后使用down删除容器和网络,可选的删除卷**: ```shell create Creates containers for a service. run Run a one-off command on a service. start Start services up Create and start containers restart Restart service containers stop Stop services rm Removes stopped service containers down Stop and remove containers, networks kill Force stop service containers. pause Pause services unpause Unpause services exec Execute a command in a running container. cp Copy files/folders between a service container and the local filesystem ``` #### docker-compose up:用于启动并运行整个Compose文件中定义的所有服务。 示例: ``` 启动所有服务并在前台显示日志:docker-compose up 启动所有服务并在后台运行:docker-compose up -d 仅启动特定服务:docker-compose up service_name ``` #### docker-compose run:主要用于在已经运行的服务中启动一个新的容器来执行一次性任务或命令。 示例: ``` 在 web 服务的环境中运行 bash 命令:docker-compose run web bash 执行一个自定义命令:docker-compose run --rm web python manage.py migrate ``` #### docker-compose create:用于创建服务容器,但不启动它们。这个命令通常用于预先创建容器以便稍后启动。 #### docker-compose start:用于启动已经存在的服务容器,但不会创建新的容器。 #### docker-compose restart: Restart service containers ```shell (base)  ~/data/es_7/ docker-compose restart kibana_7 [+] Restarting 1/1 ✔ Container kibana_7 Started ``` #### docker-compose down 用于停止服务并彻底清理所有相关的资源,包括容器、网络和可选的卷。 #### docker-compose stop 用于优雅地停止服务,给予服务一定的时间来执行清理工作。 #### docker-compose kill 用于立即停止服务,不等待服务进行任何清理。 #### docker-compose rm 用于删除已经停止的容器,但不自动清理网络和其他资源。 #### docker-compose pause:用于暂停运行中的容器,冻结容器内的所有进程。 #### docker-compose unpause:用于解除暂停状态,恢复被暂停的容器的执行。 ```shell (base)  ~/data/es_7/ (base)  ~/data/es_7/ (base)  ~/data/es_7/ docker-compose pause kibana_7 [+] Pausing 1/0 ✔ Container kibana_7 Paused 0.0s (base)  ~/data/es_7/ docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS elasticsearch_7 elasticsearch:7.16.3 "/bin/tini -- /usr/l…" elasticsearch_7 3 weeks ago Up 26 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp kibana_7 kibana:7.16.3 "/bin/tini -- /usr/l…" kibana_7 3 weeks ago Up 15 minutes (Paused) 0.0.0.0:5601->5601/tcp (base)  ~/data/es_7/ (base)  ~/data/es_7/ (base)  ~/data/es_7/ docker-compose unpause kibana_7 [+] Running 1/0 ✔ Container kibana_7 Unpaused 0.0s (base)  ~/data/es_7/ docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS elasticsearch_7 elasticsearch:7.16.3 "/bin/tini -- /usr/l…" elasticsearch_7 3 weeks ago Up 26 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp kibana_7 kibana:7.16.3 "/bin/tini -- /usr/l…" kibana_7 3 weeks ago Up 15 minutes 0.0.0.0:5601->5601/tcp (base)  ~/data/es_7/ (base)  ~/data/es_7/ ``` ### 镜像相关命令 ```shell build Build or rebuild services config Parse, resolve and render compose file in canonical format pull Pull service images push Push service images ``` ### 查看相关命令 ```shell events Receive real time events from containers. images List images used by the created containers logs View output from containers ls List running compose projects port Print the public port for a port binding. ps List containers top Display the running processes version Show the Docker Compose version information ```