docker(6):docker的容器管理

docker(6):docker的容器管理

https://www.cnblogs.com/along21/p/10215701.html#auto_id_19

1 docker run启动容器

方法1(不推荐):

  先创建一个容器:docker create 镜像名

  再启动容器:docker start 容器名

方法2:docker run 镜像名

1.1  格式

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

1.2   options 常用命令选项

  •  -t :打开一个终端,像使用交换机一样使用容器
  •  -i:交互式访问
  •  --name:容器名字
  •  --network:指定网络
  •  --rm:容器一停,自动删除
  •  -d:剥离与当前终端的关系;否则会一直占据着终端
  •  -p:端口映射,将容器内服务的端口映射在宿主机的指定端口
    • -p <container port>
    • -p <hostport>:<container port>
    • -p <hostip>:<hostport>:<container port>

1.3   启动一个Nginx容器

docker run --name web1 -d -p 80:80 nginx

[root@docker-136 ~]# docker run --name web1 -d -p 80:80 nginx
e17e2232b811d7960720b12d475a7f03ddfd4ecc610496de4ca1760706009085
[root@docker-136 ~]#

 

1.4   docker run it 在运行容器时,交互式进入容器

[root@docker-136 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              e445ab08b2be        2 weeks ago         126MB
httpd               latest              ee39f68eb241        3 weeks ago         154MB
centos              latest              9f38484d220f        4 months ago        202MB
hello-world         latest              fce289e99eb9        7 months ago        1.84kB
httpd               2.2                 e06c3dbbfe23        18 months ago       171MB
[root@docker-136 ~]# docker run -it --name centos7 centos /bin/bash
[root@813cd57daf51 /]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@813cd57daf51 /]# exit
exit
[root@docker-136 ~]#

 

2 docker ps查看运行的容器

[root@docker-136 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   4 minutes ago       Up 3 minutes        0.0.0.0:80->80/tcp   web1

 

-a 显示所有

注:容器内的第一个进程必须一直处于运行的状态,否则这个容器,就会处于退出状态!

[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   4 minutes ago       Up 3 minutes               0.0.0.0:80->80/tcp   web1
ab61a660c7d9        nginx               "nginx -g 'daemon of…"   12 minutes ago      Created                                         elegant_panini
50adc161a93e        nginx               "nginx -g 'daemon of…"   20 hours ago        Exited (0) 7 minutes ago                        vibrant_hermann
477a2958d206        nginx               "nginx -g 'daemon of…"   20 hours ago        Exited (0) 20 hours ago                         boring_northcutt
322bf01b0b1f        hello-world         "/hello"                 20 hours ago        Exited (0) 20 hours ago                         bold_chebyshev
a331eb436df0        hello-world         "/hello"                 20 hours ago        Exited (0) 20 hours ago                         quirky_shtern

 

-q只显示ID

[root@docker-136 ~]# docker ps -a -q
e17e2232b811
ab61a660c7d9
50adc161a93e
477a2958d206
322bf01b0b1f
a331eb436df0
[root@docker-136 ~]#

 

3 docker rename容器改名

[root@docker-136 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   22 minutes ago      Up 21 minutes       0.0.0.0:80->80/tcp   web1
[root@docker-136 ~]# docker rename  web1  web_80
[root@docker-136 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   22 minutes ago      Up 21 minutes       0.0.0.0:80->80/tcp   web_80
[root@docker-136 ~]#

 

4 docker start ID/name激活关闭的容器

docker start

(1)格式

Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]

(2)Options:

-a:附加到当前终端

-i:交互式

 

[root@docker-136 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
813cd57daf51        centos              "/bin/bash"              13 minutes ago      Exited (137) 21 seconds ago                       centos7
e17e2232b811        nginx               "nginx -g 'daemon of…"   29 minutes ago      Exited (0) 11 seconds ago                         web_80
[root@docker-136 ~]# docker start web_80
web_80
[root@docker-136 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   30 minutes ago      Up 24 seconds       0.0.0.0:80->80/tcp   web_80
[root@docker-136 ~]# docker restart web_80
web_80
[root@docker-136 ~]#


[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                NAMES
813cd57daf51        centos              "/bin/bash"              16 minutes ago      Exited (137) 3 minutes ago                        centos7
e17e2232b811        nginx               "nginx -g 'daemon of…"   32 minutes ago      Up 2 minutes                 0.0.0.0:80->80/tcp   web_80
[root@docker-136 ~]# docker start -i -a  centos7  
[root@813cd57daf51 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@813cd57daf51 /]# hostname
813cd57daf51
[root@813cd57daf51 /]# exit
exit
[root@docker-136 ~]#

 

5  docker inspect ID/name查看容器的详细信息

[root@docker-136 ~]# docker inspect web1
[root@docker-136 ~]# docker inspect web_80 | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
[root@docker-136 ~]# curl 172.17.0.2                          
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@docker-136 ~]#

 

6 docker stop/kill ID/name停止容器

[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
813cd57daf51        centos              "/bin/bash"              26 minutes ago      Up 8 seconds                             centos7
e17e2232b811        nginx               "nginx -g 'daemon of…"   43 minutes ago      Up 13 minutes       0.0.0.0:80->80/tcp   web_80
[root@docker-136 ~]# docker kill  centos7
centos7
[root@docker-136 ~]# docker stop e17e2232b811
e17e2232b811
[root@docker-136 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-136 ~]#

 

 

7 docker rm ID/name删除容器

先关闭容器,再删除容器

[root@docker-136 ~]# docker ps  -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
813cd57daf51        centos              "/bin/bash"              27 minutes ago      Exited (137) 34 seconds ago                       centos7
e17e2232b811        nginx               "nginx -g 'daemon of…"   44 minutes ago      Exited (0) 27 seconds ago                         web_80
[root@docker-136 ~]# docker rm centos7
centos7
[root@docker-136 ~]# docker ps  -a    
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
e17e2232b811        nginx               "nginx -g 'daemon of…"   44 minutes ago      Exited (0) 36 seconds ago                       web_80
[root@docker-136 ~]#

 

批量删除

docker rm `docker ps -a -q`     #只删除关闭状态的

docker rm -f  `docker ps -a -q`  #强制删除全部,包括启动中的

 

[root@docker-136 ~]#  docker rm `docker ps -a -q` #只删除关闭状态的
5f7ccce900c3
e17e2232b811
Error response from daemon: You cannot remove a running container 752b6f2ff6dc19ab03d98a67319a4ea7d1547a97ef5bff556ee2aedc858ffa29. Stop the container before attempting removal or force remove
[root@docker-136 ~]# docker ps  -a                
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                        NAMES
752b6f2ff6dc        nginx               "nginx -g 'daemon of…"   40 seconds ago      Up 38 seconds       80/tcp, 0.0.0.0:81->81/tcp   web2
[root@docker-136 ~]#  docker rm -f  `docker ps -a -q`  #强制删除全部,包括启动中的
752b6f2ff6dc
[root@docker-136 ~]# docker ps  -a                    
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-136 ~]#

 

 

8 进入容器

8.1  docker attach(不推荐)进入到存活的容器中

进入的终端相同,Ctrl+D 退出容器就死了,不推荐

[root@docker-136 ~]# docker ps  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1843d1604ac7        centos              "/bin/bash"         4 minutes ago       Up 10 seconds                           centos7
[root@docker-136 ~]# docker attach centos7
[root@1843d1604ac7 /]# 

 

8.2 docker exec进入/对运行的容器执行指定命令

options 选项

  •  -d:在后台运行命令
  •  -e:设置环境变量
  •  -i:交互式
  •  -t:打开一个终端
  •  -u:用户名或UID
  • 暂时退出容器:ctrl+p,ctrl+q
  • 回到容器:docker attach id或name
[root@docker-136 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1843d1604ac7        centos              "/bin/bash"              13 minutes ago      Up 8 minutes                             centos7
cea4a6004597        nginx               "nginx -g 'daemon of…"   15 minutes ago      Up 1 second         0.0.0.0:80->80/tcp   web1

 

#交互式进入容器-it

[root@docker-136 ~]# docker exec -it web1  /bin/bash
root@cea4a6004597:/# exit
[root@docker-136 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1843d1604ac7        centos              "/bin/bash"              13 minutes ago      Up 8 minutes                             centos7
cea4a6004597        nginx               "nginx -g 'daemon of…"   15 minutes ago      Up 13 seconds       0.0.0.0:80->80/tcp   web1

 

#执行命令

[root@docker-136 ~]# docker exec -it centos7  ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 04:48 pts/0    00:00:00 /bin/bash
root         59      0  0 04:57 pts/1    00:00:00 ps -ef
[root@docker-136 ~]#
 

9  docker logs name查看日志

[root@docker-136 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1843d1604ac7        centos              "/bin/bash"              17 minutes ago      Up 12 minutes                            centos7
cea4a6004597        nginx               "nginx -g 'daemon of…"   19 minutes ago      Up 3 minutes        0.0.0.0:80->80/tcp   web1
[root@docker-136 ~]# docker inspect web1 | grep IPA
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.3",
[root@docker-136 ~]# curl -s -I 172.17.0.3
HTTP/1.1 200 OK
Server: nginx/1.17.2
Date: Wed, 07 Aug 2019 05:01:17 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 23 Jul 2019 11:45:37 GMT
Connection: keep-alive
ETag: "5d36f361-264"
Accept-Ranges: bytes

[root@docker-136 ~]# docker logs web1
172.17.0.1 - - [07/Aug/2019:05:00:50 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
172.17.0.1 - - [07/Aug/2019:05:00:57 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
172.17.0.1 - - [07/Aug/2019:05:01:03 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.29.0" "-"
172.17.0.1 - - [07/Aug/2019:05:01:17 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.29.0" "-"
[root@docker-136 ~]#

 

10 docker cp容器copy文件

例如把容器内的配置文件copy出来

[root@docker-136 ~]# ls
MadKingClient  p.txt  tools
[root@docker-136 ~]# docker cp  cea4a6004597:/etc/nginx/nginx.conf .
[root@docker-136 ~]# ls
MadKingClient  nginx.conf  p.txt  tools
[root@docker-136 ~]#

 

posted on 2019-08-07 17:00  光阴8023  阅读(329)  评论(0编辑  收藏  举报