ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 学习笔记 - 容器的常用命令

2020-09-29 22:52:14  阅读:257  来源: 互联网

标签:150 容器 16 172 常用命令 Docker root docker


下面看看常用的docker container相关的命令,主要包括显示列表,启动容器,进入容器,删除容器

ls 命令可以显示容器的列表

默认是查看当前 up的容器

[root@ip-172-16-1-150 ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
922900db1dc0        nginx               "/docker-entrypoint.…"   5 days ago          Up 5 days           0.0.0.0:80->80/tcp   test2
[root@ip-172-16-1-150 ~]#

如果想查看最新的容器,可以指定 -l ( latest);

[root@ip-172-16-1-150 ~]# docker container ls -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
989d817f0431        centos:6.9          "/bin/bash"         2 minutes ago       Exited (127) About a minute ago                       centos6

如果想查看所有的容器,包括已经停止的容器,可以指定 -a

[root@ip-172-16-1-150 ~]# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                            PORTS                NAMES
989d817f0431        centos:6.9          "/bin/bash"              2 minutes ago       Exited (127) About a minute ago                        centos6
922900db1dc0        nginx               "/docker-entrypoint.…"   5 days ago          Up 5 days                         0.0.0.0:80->80/tcp   test2

如果希望显示静默输出 可以指定 -q


[root@ip-172-16-1-150 ~]# docker container ls -a -q
0a1dbdacb15e
989d817f0431
922900db1dc0

run 命令 启动容器

run相当于 pull+ create+start 的操作。他会检测当前的image,如果不存在,他会自动pull下载一个,创建一个容器,并启动。 启动的常见选项用 -p 指定端口映射,--name 指定名字 ,-d 后台运行 , --it 交互模式 , 以及最后面的初始化命令,注意,初始化命令必须要能夯住,容器就是一个进程,如果这个进程执行的命令结束了,那么这个容器就自动退出了,因此容器必须启动的时候,必须指定执行一段脚本或者代码保证他在不停地运行才行。

[root@ip-172-16-1-150 ~]# docker run -it --name centos6.9 centos:6.9 /bin/bash
[root@0a1dbdacb15e /]# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  3 03:04 pts/0    00:00:00 /bin/bash
root          12       1  0 03:05 pts/0    00:00:00 ps -ef

exec 或者 attach 进入容器

有两种方式进入容器,一个是exec,一个是attach; 前者是新创建一个tty终端,后者是进入同一个终端

一个方式是 exec

[root@ip-172-16-1-150 ~]# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                NAMES
0a1dbdacb15e        centos:6.9          "/bin/bash"              12 minutes ago      Exited (0) 11 minutes ago                          centos6.9
989d817f0431        centos:6.9          "/bin/bash"              17 minutes ago      Exited (127) 16 minutes ago                        centos6
922900db1dc0        nginx               "/docker-entrypoint.…"   5 days ago          Up 5 days                     0.0.0.0:80->80/tcp   test2
[root@ip-172-16-1-150 ~]# docker exec -it test2 /bin/bash

另外一个方式是 attach,首先创建一个新的容器,并且进入一个终端;然后另外attach一个,会发现进入的是同一个终端,任何操作都是同步的

[root@ip-172-16-1-150 ~]# docker run -it centos:6.9 /bin/bash
[root@ip-172-16-1-150 ec2-user]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9c36577306aa        centos:6.9          "/bin/bash"         25 seconds ago      Up 24 seconds                           sweet_jennings
[root@ip-172-16-1-150 ec2-user]# docker attach 9c36577306aa
[root@9c36577306aa /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@9c36577306aa /]# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 03:19 pts/0    00:00:00 /bin/bash
root          13       1  0 03:20 pts/0    00:00:00 ps -ef
[root@9c36577306aa /]#

rm 命令 删除容器

直接可以指定容器的id进行删除

[root@ip-172-16-1-150 ~]# docker container rm centos6

如果这个容器正在运行,需要指定-f 强制删除

如果我希望删除所有的容器,可以通过 docker ps -a -q 来获取所有的容器id,作为一个参数传给rm 命令进行删除


[root@ip-172-16-1-150 ~]# docker container rm -f `docker ps -a -q`
9c36577306aa
0a1dbdacb15e
922900db1dc0

标签:150,容器,16,172,常用命令,Docker,root,docker
来源: https://blog.51cto.com/beanxyz/2539238

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有