Docker笔记3——容器命令(上)

 

新建并启动容器

docker run

docker run [OPTIONS] IMAGE [COMMEND] [ARG...]

OPTIONS:

--name=[容器新名字]  :为容器指定一个名称

-d:后台运行容器,并返回容器ID,也即启动守护式容器

-i:以交互模型运行容器,通常与-t同时使用

-t:为容器重新分配一个伪输入终端,通常与-i同时使用

-P:随机端口映射

-p:指定端口映射,有以下四种格式:

ip:host_port:container_port

ip:container_port

host_port:container_port

container_port

 

新建启动运行一个centos镜像的实例(即容器),并且进入该容器进行交互:

neil@linux-famw:~> docker run -it centos
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# ll
total 28
-rw-r--r--   1 root root 12076 Dec  5 01:37 anaconda-post.log
lrwxrwxrwx   1 root root     7 Dec  5 01:36 bin -> usr/bin
drwxr-xr-x   5 root root   360 Feb 17 14:06 dev
drwxr-xr-x   1 root root  1978 Feb 17 14:06 etc
drwxr-xr-x   1 root root     0 Apr 11  2018 home
lrwxrwxrwx   1 root root     7 Dec  5 01:36 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Dec  5 01:36 lib64 -> usr/lib64
drwxr-xr-x   1 root root     0 Apr 11  2018 media
drwxr-xr-x   1 root root     0 Apr 11  2018 mnt
drwxr-xr-x   1 root root     0 Apr 11  2018 opt
dr-xr-xr-x 269 root root     0 Feb 17 14:06 proc
dr-xr-x---   1 root root   120 Dec  5 01:37 root
drwxr-xr-x   1 root root   124 Dec  5 01:37 run
lrwxrwxrwx   1 root root     8 Dec  5 01:36 sbin -> usr/sbin
drwxr-xr-x   1 root root     0 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Feb 17 14:06 sys
drwxrwxrwt   1 root root   140 Dec  5 01:37 tmp
drwxr-xr-x   1 root root   106 Dec  5 01:36 usr
drwxr-xr-x   1 root root   160 Dec  5 01:36 var
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 

从上面可以看到我们进入了这个容器centos实例,root用户,6c8275123500是容器id,这里将这个id作为了容器内的主机名。

我们在外部通过docker ps查看容器进程。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6c8275123500        centos              "/bin/bash"         3 minutes ago       Up 3 minutes                            elated_brown
neil@linux-famw:~> 

另一边,如果我们在容器内 希望退出容器 并停止该容器,则输入exit。

[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# exit
exit
neil@linux-famw:~> 
neil@linux-famw:~> 

 

查看运行的容器

docker ps [OPTIONS]

-a  列出当前所有正在运行的容器 和 历史上运行过的容器

-l  显示最近创建的容器

-n  显示最近n个创建的容器。包括正在运行的和已经停止的。

-q  静默模式,仅显示容器号。多用于与其他命令组合使用,以方便批量处理容器。

--no-trunc  不截断输出。

(本文出自oschina博主happyBKs的博文:https://my.oschina.net/happyBKs/blog/3011199)

示例如下:单个字母的参数可以连写,比如-l -q可以写成-lq

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
6c8275123500        centos              "/bin/bash"         5 minutes ago       Exited (0) 39 seconds ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
6c8275123500        centos              "/bin/bash"         5 minutes ago       Exited (0) 46 seconds ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -n 3
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
6c8275123500        centos              "/bin/bash"         6 minutes ago       Exited (0) About a minute ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -lq
6c8275123500
neil@linux-famw:~> 

 

 

 

我们回过来看看容器内部的情况,则个centos没有装jdk,预装了python2。这与我的本地宿主机不同。

neil@linux-famw:~> docker run -it --name=centos-01 centos
[root@94769f89ea30 /]# 
[root@94769f89ea30 /]# java -version
bash: java: command not found
[root@94769f89ea30 /]# python    
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@94769f89ea30 /]# 

查看容器列表,可以看到容器id、对应的镜像名称、容器名称、创建容器的时间、容器状态等。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         11 seconds ago      Up 9 seconds                            centos-01
neil@linux-famw:~> 

 

用不停止容器的方式推出容器交互模式

Ctrl + P, Q   从容器内以不关闭容器的方式退回宿主机。这与在容器内输入exit不同,exit是不仅推出容器而且关闭结束容器。

[root@94769f89ea30 /]# 
[root@94769f89ea30 /]# neil@linux-famw:~> 
neil@linux-famw:~> 

这时候可以看到这个容器还活着呢。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         10 minutes ago      Up 10 minutes                           centos-01
neil@linux-famw:~> 

 

启动一个已经关闭的容器

docker start [容器id]

如果我们想把一个容器启动,比如将刚才已经关闭的那个容器启动:

neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         12 minutes ago      Up 12 minutes                                   centos-01
6c8275123500        centos              "/bin/bash"         30 minutes ago      Exited (0) 25 minutes ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker start 6c8275123500
6c8275123500
neil@linux-famw:~> 
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         12 minutes ago      Up 12 minutes                           centos-01
6c8275123500        centos              "/bin/bash"         30 minutes ago      Up 9 seconds                            elated_brown
neil@linux-famw:~> 

 

重启容器

docker restart

重启一个容器也类似:

neil@linux-famw:~> docker restart 94769f89ea30
94769f89ea30
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         18 minutes ago      Up 3 seconds                            centos-01
6c8275123500        centos              "/bin/bash"         35 minutes ago      Up 5 minutes                            elated_brown
neil@linux-famw:~> 

 

 

关闭停止容器

温柔型:docker stop [容器id或者容器名]

强制型:docker kill [容器id或者容器名]

neil@linux-famw:~> docker stop 94769f89ea30
94769f89ea30
neil@linux-famw:~> 
neil@linux-famw:~> docker kill 6c8275123500
6c8275123500
neil@linux-famw:~> 
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
neil@linux-famw:~> 

前者慢,后者快;前者类似正常关机,后者类似拔电源。

 

neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         25 minutes ago      Exited (137) About a minute ago                       centos-01
6c8275123500        centos              "/bin/bash"         43 minutes ago      Exited (137) About a minute ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker rm 6c8275123500
6c8275123500
neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         26 minutes ago      Exited (137) 2 minutes ago                       centos-01
neil@linux-famw:~> 

 

neil@linux-famw:~> docker rm -f 94769f89ea30
94769f89ea30
neil@linux-famw:~> 

 

删除全部容器

neil@linux-famw:~> docker rm -f $(docker ps -a -q)

 

neil@linux-famw:~> docker ps -a -q | xargs docker rm -f

xargs为linux命令可变参数

 

 

 

 

 

转载于:https://my.oschina.net/happyBKs/blog/3011199

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值