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

 

新建并启动容器

docker runjava

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

OPTIONS:linux

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

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

-i:以交互模型运行容器,一般与-t同时使用bash

-t:为容器从新分配一个伪输入终端,一般与-i同时使用app

-P:随机端口映射post

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

ip:host_port:container_port.net

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命令可变参数

相关文章
相关标签/搜索