docker-compose常用命令总结

1. 构建和删除

1.1 up

  • 作用: 构建并启动容器

  • 语法

docker-compose -f xxx.yaml up [ -d ]

说明:
默认文件名为docker-compose.yml时 ,-f可以省略。
-d 是后台运行。

  • 示例
[root@test mysql]# docker-compose up -d
Creating network "mysql_default" with the default driver
Creating liubei_mysql ... done

说明:

创建了一个网络:mysql_default

创建了一个容器:liubei_mysql

1.2 down

  • 作用: 停止并删除容器、网络、卷、镜像。

  • 语法: docker-compose down [options]

  • 示例

[root@test mysql]# docker-compose down
Stopping liubei_mysql ... done
Removing liubei_mysql ... done
Removing network mysql_default

说明:

停止了容器,移除了容器,移除了网络。

如果这个网络有容器在用,移除网络这里会报一个警告

1.3 rm

  • 作用: 删除指定服务的容器(停止状态的)

  • 语法: docker-compose rm [options] [SERVICE…]

【选项】
–f, –force,强制直接删除,包括非停止状态的容器
-v,删除容器所挂载的数据卷

  • 示例
[root@test mysql]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
[root@test mysql]# docker-compose rm
No stopped containers
[root@test mysql]# docker-compose stop
Stopping liubei_mysql ... done
[root@test mysql]# docker-compose rm
Going to remove liubei_mysql
Are you sure? [yN] y
Removing liubei_mysql ... done
[root@test mysql]# docker-compose ps
Name Command State Ports
------------------------------

1.4 run

  • 作用: 启动一个服务,并在一个服务上执行一个命令

  • 语法:

docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]

  • 示例1

说明:
如果没有这个服务,会直接创建容器和网络。
如果启动了,则会直接执性后边点命令
执行完之后,容器会被删除,但默认网络不会删除。
服务名是

[root@n9e-client-01 mysql]# docker-compose ps
Name Command State Ports
------------------------------
[root@n9e-client-01 mysql]# docker-compose run mysql "pwd"
Creating network "mysql_default" with the default driver
/
[root@n9e-client-01 mysql]# docker-compose run mysql "pwd"
/
[root@n9e-client-01 mysql]# docker-compose ps
Name Command State Ports
------------------------------

2. 启动/停止/暂停

2.1 start

  • **作用:**启动指定服务已存在的容器

  • 语法: docker-compose stop [SERVICE...]

  • 示例

[root@test mysql]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Exit 0
[root@test mysql]# docker-compose start
Starting mysql ... done
[root@test mysql]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp

如果服务不存在,则报错如下:

[root@test mysql]# docker-compose down
Stopping liubei_mysql ... done
Removing liubei_mysql ... done
Removing network mysql_default
[root@test mysql]# docker-compose ps
Name Command State Ports
------------------------------
[root@test mysql]# docker-compose start
Starting mysql ... failed
ERROR: No containers to start

2.2 stop

  • 作用: 停止已运行的服务的容器

  • 语法: docker-compose stop [SERVICE...]

  • 示例

[root@test mysql]# docker-compose stop
Stopping liubei_mysql ... done
[root@test mysql]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Exit 0

.2.3 restart

  • 作用: 重起容器

  • 语法: docker-compose restart [options] [SERVICE...]

  • 示例:

[root@test mysql]# docker-compose restart mysql
Restarting liubei_mysql ... done

2.4 pause

1)作用:暂停已运行的服务的容器

2)语法: docker-compose pause [SERVICE…]

[root@test mysql]# docker-compose pause
Pausing liubei_mysql ... done
[root@test mysql]# docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Paused 0.0.0.0:3306->3306/tcp, 33060/tcp

从状态可以看到,pause是暂停,和stop点结束时不同的。

2.5 kill

  • 作用: 通过发送 SIGKILL 信号来停止指定服务的容器
  • 语法: docker-compose kill [options] [SERVICE...]
  • 示例:
[root@test]# docker-compose kill
Killing liubei_mysql ... done
[root@test]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------
liubei_mysql docker-entrypoint.sh mysqld Exit 137

和stop点区别:从退出状态可知,stop是正常结束服务,而kill是杀死,非特殊情况不建议kill。

3 查看和日志

3.1 ps

  • 作用: 列出所有容器
  • 语法: docker-compose ps [options] [SERVICE...]
  • 示例
[root@test crust-framework]# docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------
auth sh -c java -server $JAVA_O ... Up 0.0.0.0:10001->10001/tcp
gateway sh -c java -server $JAVA_O ... Up 0.0.0.0:10000->10000/tcp
user sh -c java -server $JAVA_O ... Up 0.0.0.0:10002->10002/tcp
[root@test crust-framework]# docker-compose ps auth
Name Command State Ports
------------------------------------------------------------------------
auth sh -c java -server $JAVA_O ... Up 0.0.0.0:10001->10001/tcp

3.2 logs

  • 作用: 查看服务日志输出(容器前台输出的日志)

  • 语法: docker-compose logs [options] [SERVICE...]

[root@test mysql]# docker-compose logs

3.3 port

  • 作用: 打印绑定的公共端口

  • 示例

打印mysql 3306端口绑定的端口

[root@test mysql]# docker-compose port mysql 3306
0.0.0.0:3306

4 其它

4.1 pull

  • 作用: 下载服务镜像

  • 示例:

下载docker-compose.yml中所需的镜像

[root@test mysql]# docker-compose pull
Pulling mysql ... done

4.2 scale

  • 作用: 设置指定服务运行容器的个数,以 service=num 形式指定
  • 示例:
[root@n9e-client-01 mysql]# docker-compose up -d
Creating network "mysql_default" with the default driver
Creating mysql_mysql_1 ... done
[root@n9e-client-01 mysql]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------
mysql_mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
[root@n9e-client-01 mysql]# docker-compose scale mysql=2
WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.
Starting mysql_mysql_1 ... done
Creating mysql_mysql_2 ... done
[root@n9e-client-01 mysql]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------
mysql_mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
mysql_mysql_2 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp

说明:

不能给容器起名,否则冲突。

不能映射端口,否则冲突……

4.3 build

  • 作用: 构建或者重新构建服务

posted on   运维开发玄德公  阅读(71)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示