
docker-compose命令介绍
这个时候使用docker一个个部署好麻烦,使用k8s当然也没有那个环境,此时docker-compose似乎是个好的选择。日常工作也便没有了接触,但是容器化还是开发默认的设定,很多时候还是需要快速部署个测试环境。用于创建服务容器,但不启动它们。主要用于在已经运行的服务中启动一个新的容器来执行一次性任务或命令。用于停止服务并彻底清理所有相关的资源,包括容器、网络和可选的卷。用于启动已经存在的服务容器
docker-compose命令介绍
docker-compose
学了docker,然后就直接去学k8s了。恍恍惚惚几年过去了,k8s早就没有摸过,当然也就没有用过了。
日常工作也便没有了接触,但是容器化还是开发默认的设定,很多时候还是需要快速部署个测试环境。
这个时候使用docker一个个部署好麻烦,使用k8s当然也没有那个环境,此时docker-compose似乎是个好的选择。
这也是我为啥讲讲docker-compose的原因了。
1. 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
2. Compose file format
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
.
3. 命令
(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
3.1 服务相关命令
通常我们都是使用docker-compose快速起服务,
此时一般使用up启动整个服务,
然后使用down删除容器和网络,可选的删除卷:
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
up
用于启动并运行整个Compose文件中定义的所有服务。
示例:
启动所有服务并在前台显示日志:docker-compose up
启动所有服务并在后台运行:docker-compose up -d
仅启动特定服务:docker-compose up service_name
run
主要用于在已经运行的服务中启动一个新的容器来执行一次性任务或命令。
示例:
在 web 服务的环境中运行 bash 命令:docker-compose run web bash
执行一个自定义命令:docker-compose run --rm web python manage.py migrate
create
用于创建服务容器,但不启动它们。这个命令通常用于预先创建容器以便稍后启动。
start
用于启动已经存在的服务容器,但不会创建新的容器。
restart
Restart service containers
(base) ~/data/es_7/ docker-compose restart kibana_7
[+] Restarting 1/1
✔ Container kibana_7 Started
down
用于停止服务并彻底清理所有相关的资源,包括容器、网络和可选的卷。
stop
用于优雅地停止服务,给予服务一定的时间来执行清理工作。
kill
用于立即停止服务,不等待服务进行任何清理。
rm
用于删除已经停止的容器,但不自动清理网络和其他资源。
pause
用于暂停运行中的容器,冻结容器内的所有进程。
unpause
用于解除暂停状态,恢复被暂停的容器的执行。
(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/
3.2 镜像相关命令
build Build or rebuild services
config Parse, resolve and render compose file in canonical format
pull Pull service images
push Push service images
3.3 查看相关命令
都支持json的返回格式。
events 查看服务的事件
images 查看服务使用的镜像
logs 查看服务的日志
ls 列举服务
port 这个感觉很鸡肋,直接用ps命令查看吧。用于查看服务暴露的端口映射到主机上的那个端口
ps 列举容器
top 查看容器中的进程,类似于ps
version 查看docker compose的版本
更多推荐
所有评论(0)