docker常用命令

  1. 查看docker版本:

           docker version

  1. 通过仓库查找一个名叫tutorial的镜像:

            docker search tutorial

  1. 将上一步找到的镜像下载到本地:

            docker pull learn/tutorial(用户名/镜像名)

4、利用镜像启动一个容器同时在容器中运行echo命令输出“hello word”:

             docker run learn/tutorial echo hello word

5、在容器中安装ping命令(在容器的可写层在做读写操作):

             docker run learn/tutorial apt-get install -y ping

6、查看有哪些容器:

         docker ps [-a] [-l]

                    -a:列出所有的容器

                   -l:列出最新建立的一个容器

                    :无参数返回正在运行的容器

7、将刚才修改的容器提交(相当于创建一个新的镜像):

             docker commit 容器的唯一编号 learn/renboping(给新创建镜像起的名字)

            返回新的镜像的ID

8、利用刚刚建立的新镜像运行一个容器(这个容器里面运行ping一个百度的网站:

            docker run learn/ping ping www.baidu.com)

9、查看正在运行中的容器:

           docker inspect 容器ID

10、查看有哪些镜像:

          docker images

11、将刚才建立的新的镜像保存在docker hub仓库中:

          docker push learn/renboping

12、自定义容器名称。

          docker  run  --name=自定义名 -i  -t  IMAGE /bin/bash

13、重新启动和停止已经建立的容器。

           启动:docker start [-i] 容器名称

           -i:以交互式的方式重新启动容器。

14、删除已经停止的容器:

          docker rm 容器名称

docker stop

先来说说docker stop吧,当我们用docker stop命令来停掉容器的时候,docker默认会允许容器中的应用程序有10秒的时间用以终止运行。所以我们查看docker stop命令帮助的时候,会有如下的提示:

?

1

2

3

4

5

6

→ docker stop --help

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

Stop one or more running containers

Options:

  --help  Print usage

 -t, --time int Seconds to wait for stop before killing it (default 10)

docker stop命令执行的时候,会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,如果等待时间达到设定的超时时间,或者默认的10秒,会继续发送SIGKILL的系统信号强行kill掉进程。在容器中的应用程序,可以选择忽略和不处理SIGTERM信号,不过一旦达到超时时间,程序就会被系统强行kill掉,因为SIGKILL信号是直接发往系统内核的,应用程序没有机会去处理它。在使用docker stop命令的时候,我们唯一能控制的是超时时间,比如设置为20秒超时:

?

1

docker stop --time=20 container_name

docker kill

接着我们来看看docker kill命令,默认情况下,docker kill命令不会给容器中的应用程序有任何gracefully shutdown的机会。它会直接发出SIGKILL的系统信号,以强行终止容器中程序的运行。通过查看docker kill命令的帮助,我们可以看到,除了默认发送SIGKILL信号外,还允许我们发送一些自定义的系统信号:

?

1

2

3

4

5

6

→ docker kill --help

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

Kill one or more running containers

Options:

  --help   Print usage

 -s, --signal string Signal to send to the container (default "KILL")

比如,如果我们想向docker中的程序发送SIGINT信号,我们可以这样来实现:

?

1

docker kill --signal=SIGINT container_name

与docker stop命令不一样的地方在于,docker kill没有任何的超时时间设置,它会直接发送SIGKILL信号,以及用户通过signal参数指定的其他信号。

其实不难看出,docker stop命令,更类似于Linux系统中的kill命令,二者都是发送系统信号SIGTERM。而docker kill命令,更像是Linux系统中的kill -9或者是kill -SIGKILL命令,用来发送SIGKILL信号,强行终止进程。

守护式容器:

什么是守护式容器 

1、能够长期运行

2、没有交互式会话

3、适合运行应用程序和服务

如何以守护的形式运行容器呢?

docker run -i -t IMAGE /bin/bash

Ctrl+P  Ctrl+Q  -> 退出交互式容器的bash,则容器会在后台运行。

docker attach 容器ID/名称  -> 重新进入转入后台运行的容器。  

如何直接利用run命令启动一个守护式容器 

docker run -d 镜像名称[COMMAND][ARG...]

查看容器运行的日志 

docker logs [-f][-t][--tail] 容器名

-f --follows=true | false 默认为false:一直跟踪日志的变化并返回结果

-t --timestamps=true | false默认为false:在返回的结果上加上时间戳

--tail=”all”:返回结尾处多少数量的日志数,如果不指定那么logs会返回所有的日志。

docker logs doc3 查看已经产生的全部日志

docker logs -tf -tail=0 doc3 显示最新的一条日志变化,并且有时间戳

查看容器中的进程 

docker top 容器名

如何在运行中的容器中启动新的进程 

docker exec [-d][-i][-d] 容器名 [COMMAND][ARG]

如何停止守护式容器 

docker stop 容器名

docker kill 容器名

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值