06-docker 容器管理命令

1.docker镜像查找

# 查找nginx镜像,默认是
[root@docker03 ~]# docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        8168                [OK]                
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1296                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   530                                     [OK]
jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as p…   331                                     [OK]
......
[root@docker03 ~]# docker pull nginx

 2.获取镜像,对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像

# 命令格式
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

[root@docker03 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
2a72cbf407d6: Pull complete 
eccc107d7abd: Pull complete 
76aa3935d77c: Pull complete 
Digest: sha256:f6e250eaa36af608af9ed1e4751f063f0ca0f5310b1a5d3ad9583047256f37f6
Status: Downloaded newer image for nginx:latest

 3.运行nginx容器的2种方法

# 运行容器
[root@docker03 ~]# docker run -itd nginx bash
00fcd7530bd0eb74ce12dc0b91cd807db0e15a90d230d6855c8a9f44a726b82a

# 容器运行命令参数
-i      交换式操作
-t      终端
-d     后台运行
--rm  容器退出后随之将其删除
bash  运行容器后执行的命令

# 查看运行的容器
[root@docker03 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
00fcd7530bd0        nginx               "bash"              8 seconds ago       Up 7 seconds        80/tcp              eloquent_vaughan

# 删除容器
[root@docker03 ~]# docker rm -f 00fcd7530bd0
00fcd7530bd0

# 进入容器,查询容器ID,然后根据容器ID进入
[root@docker03 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
19c712af2c18        nginx               "bash"              10 seconds ago      Up 8 seconds        80/tcp              inspiring_mirzakhani


#==================================================
# 进入容器的2种方法,1是container id 2是pid
# 第1种
[root@docker03 ~]# docker exec -it 19c712af2c18 bash
root@19c712af2c18:/# 

[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f3bbb1cc5a44        centos              "/bin/bash"         21 minutes ago      Up 21 minutes                           mydocker

# 停止容器
[root@docker01 ~]# docker stop mydocker
mydocker

# 启动容器
[root@docker01 ~]# docker start mydocker
mydocker
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f3bbb1cc5a44        centos              "/bin/bash"         22 minutes ago      Up 2 seconds                            mydocker

# 第2种
# 获取指定容器的PID
[root@docker01 ~]# docker inspect --format "{{.State.Pid}}" mydocker
12883

# 根据PID进去指定容器
[root@docker01 ~]# nsenter --target 12883 --mount --uts --ipc --net --pid

[root@f3bbb1cc5a44 /]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  11824  1704 pts/0    Ss+  04:31   0:00 /bin/bash
root         13  0.0  0.1  15256  2024 ?        S    04:33   0:00 -bash
root         27  0.0  0.0  55144  1844 ?        R+   04:33   0:00 ps aux

# 退出容器依然不会停止
[root@f3bbb1cc5a44 /]# exit
logout
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f3bbb1cc5a44        centos              "/bin/bash"         24 minutes ago      Up About a minute

 4.脚本进去容器

[root@docker01 ~]# cat docker_in.sh 
#!/bin/bash

docker_in(){
	NAME=$1
	PID=$(docker inspect --format "{{.State.Pid}}" $1)
	nsenter --target $PID --mount --uts --ipc --net --pid
}

docker_in $1
[root@docker01 ~]# ./docker_in.sh mydocker

 5.显示容器镜像

# 含镜像ID和仓库名
[root@docker03 ~]# docker image ls --format "{{.ID}}: {{.Repository}}"
73acd1f0cfad: nginx
2d194b392dd1: centos
f2a91732366c: hello-world

# 以表格等距显示,并且有标题行
[root@docker03 ~]# docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID            REPOSITORY          TAG
73acd1f0cfad        nginx               latest
2d194b392dd1        centos              latest
f2a91732366c        hello-world         latest

 5.删除本地镜像

# 命令格式
docker image rm [选项] <镜像1> [<镜像2> ...]

[root@docker03 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              73acd1f0cfad        6 days ago          109MB
centos              latest              2d194b392dd1        2 weeks ago         195MB
hello-world         latest              f2a91732366c        3 months ago        1.85kB

[root@docker03 ~]# docker rmi 2d194b392dd1
Untagged: centos:latest
Deleted: sha256:2d194b392dd16955847a14f969b2dd319251471ffa6356be6d8f16c5bf53db9b
Deleted: sha256:b03095563b7956c62ae5a6d20e5959a950e3b1a96d4404c00b7da7393847494a

 

posted @ 2018-03-20 15:26  sunmmi  阅读(239)  评论(0)    收藏  举报