Docker常用命令

Docker现在基本成为了运维人员必须掌握的专业技能之一,而docker默认没有图形界面管理,因此掌握docker-client命令行操作就显得十分重要。

  • 安装docker指定版本:
# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo

或者使用阿里源

# curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo

# yum makecache fast

# yum install -y docker-ce-18.03.0.ce           #以安装docker-ce-18.03.0版本为例

# systemctl start docker && systemctl enable docker

search

docker search 用来搜索可用的相关镜像。

  • 从docker仓库中搜索nginx镜像:
# docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        11083               [OK] 
pull

docker pull 下载指定镜像。

  • 从docker仓库中下载nginx镜像:
# docker pull docker.io/nginx
Using default tag: latest
latest: Pulling from library/nginx
f7e2b70d04ae: Pull complete 
08dd01e3f3ac: Pull complete 
d9ef3a1eb792: Pull complete 
Digest: sha256:98efe605f61725fd817ea69521b0eeb32bef007af0e3d0aeb6258c6e6fe7fc1a
Status: Downloaded newer image for nginx:latest

docker pull 时可以指定镜像标签,不指定默认为latest。

images

docker images 查看已下载的本地docker镜像。

  • 查看已下载的本地docker镜像:
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              881bd08c0b08        13 days ago         109MB

可以看到刚刚下载到本地的 nginx:latest 镜像。

run

docker run 启动docker镜像为容器。

  • 启动nginx镜像为容器:
# docker run -itd -p 80:80 --name nginx nginx:latest 
a38795771660b7e52ba7719dd936fbda36666ceff95fe66e79b6b845f278e9e9

上面命令后加上/bin/bash就可以进入到容器中。

docker run 有一些参数选项:

-i:interactive交互

-t:tty终端

-d:daemon后台启动

-p:端口映射,前面的端口为宿主机监听端口,后面的端口为容器监听端口

--name:指定启动后容器的名字

--rm:退出容器后删除容器

使用 docker run 启动镜像为容器之前,如果本地没有镜像,会自动pull镜像。

ps

docker ps 查看当前正在运行中的容器。

  • 查看当前正在运行中的容器:
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
a38795771660        nginx:latest        "nginx -g 'daemon of…"   9 minutes ago       Up 9 minutes        0.0.0.0:80->80/tcp   nginx

docker ps 还有一个常用的参数选项:

-a:查看当前系统中所有的容器,包括运行中、暂停中和已停止的容器
inspect

docker inspect 查看容器的详细信息。

  • 查看nginx容器的详细信息:
# docker inspect nginx |grep -i ipaddr
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

查看容器的详细信息,并从信息中过滤IP地址。

exec

docker exec 在docker容器中执行命令。

  • 在docker容器中执行df -h命令:
# docker exec nginx df -h
Filesystem                       Size  Used Avail Use% Mounted on
overlay                           36G  3.7G   32G  11% /
tmpfs                             64M     0   64M   0% /dev
tmpfs                            1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos_master1-root   36G  3.7G   32G  11% /etc/hosts
shm                               64M     0   64M   0% /dev/shm
tmpfs                            1.9G     0  1.9G   0% /proc/acpi
tmpfs                            1.9G     0  1.9G   0% /proc/scsi
tmpfs                            1.9G     0  1.9G   0% /sys/firmware

已经启动的nginx容器可以这样进入:

# docker exec -it nginx bash

此处的 -it 参数选项与 docker run 中参数作用一致。

# docker exec nginx touch /tmp/1.txt

# docker exec -it nginx bash
root@a38795771660:/# ls /tmp/
1.txt
start/stop

docker start/stop 启动、停止指定的容器。

  • 停止nginx容器,再启动nginx容器:
# docker stop nginx
nginx

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
a38795771660        nginx:latest        "nginx -g 'daemon of…"   28 minutes ago      Exited (0) 9 seconds ago                       nginx

# docker start nginx
nginx

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
a38795771660        nginx:latest        "nginx -g 'daemon of…"   29 minutes ago      Up 30 seconds       0.0.0.0:80->80/tcp   nginx

另外,还可以使用 docker restart 来重启指定的容器。

kill

docker kill 用来kill掉运行中的容器。

  • kill掉运行中的nginx容器:
# docker kill nginx
nginx

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
a38795771660        nginx:latest        "nginx -g 'daemon of…"   37 minutes ago      Exited (137) 15 seconds ago                       nginx

docker kill 与 docker stop 作用类似,但后者要“温柔”一些。遇到 docker stop 也无法关闭的容器,可以使用 docker kill 强行关闭。

rm

docker rm 删除指定的容器。

  • 删除nginx容器:
# docker rm nginx
Error response from daemon: You cannot remove a running container a38795771660b7e52ba7719dd936fbda36666ceff95fe66e79b6b845f278e9e9. Stop the container before attempting removal or force remove

# docker rm -f nginx
nginx

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker rm 的常用参数选项:

-f:强制删除正在运行中的容器

docker rm 无法直接删除正在运行中的容器,建议先停止容器,再删除容器。

rmi

docker rm 删除指定的镜像。

  • 删除nginx镜像:
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              881bd08c0b08        13 days ago         109MB

# docker run -itd -p 80:80 --name nginx nginx:latest 
b34323364cf285d17f25f7f338f298f73edb49ddf2b72d0aa31484676092cfa6

# docker rmi nginx:latest 
Error response from daemon: conflict: unable to remove repository reference "nginx:latest" (must force) - container b34323364cf2 is using its referenced image 881bd08c0b08

# docker rmi -f nginx:latest 
Untagged: nginx:latest
Untagged: nginx@sha256:98efe605f61725fd817ea69521b0eeb32bef007af0e3d0aeb6258c6e6fe7fc1a

docker rmi 的常用参数选项:

-f:强制删除正在运行中的容器的镜像

docker rmi 无法直接删除当前存在(不管时正在运行中还是已经停止)的容器的镜像,建议先停止、删除容器,再删除对应镜像。

更多命令

除了上面的命令以外,还有很多命令也是经常使用的。

  • 更多命令如下:
Docker命令作用
dockerpush推送指定镜像或者库镜像到docker源服务器
dockerhistory展示一个镜像形成历史
dockerattach当前shell下attach连接指定运行镜像
dockerbuild通过Dockerfile定制镜像
dockercommit提交当前容器为新的镜像
dockercp宿主机和容器之间互相拷贝文件或目录
dockercreate创建一个新的容器,同run,但不启动容器
dockerdiff查看容器变化
dockerevents从docker服务获取容器实时事件
dockerexport导出容器的内容流作为一个tar归档文件[对应import]
dockerimport从tar包中的内容创建一个新的文件系统镜像[对应export]
dockerinfo显示系统相关信息
dockerload从一个tar包中加载一个镜像[对应save]
dockerlogin注册或登录一个docker源服务器
dockerlogout从docker源服务器中登出
dockerlogs输出当前容器的日志信息
dockerport查看映射端口对应的容器内部源端口
dockerpause暂停容器
dockerrestart重启运行中的容器
dockersave保存一个镜像为一个tar包[对应load]
dockertag给当前镜像打标签
dockertop查看容器中运行的进程信息
dockerunpause恢复暂停的容器
dockerversion查看docker版本号
dockerwait截取容器停止时的退出状态值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值