022、如何运行容器(2019-01-15 周二)

 
之前的章节学习了如何构建Docker镜像,并通过镜像运行容器,从今天开始学习容器的各种操作,容器各种状态之间如何转换,以及实现容器的底层技术
 
运行容器
 
dokcer run 是运行容器的方法,之前我们已经学习了三种指定容器启动时执行命令的方法
    1、CMD 指令
    2、ENTRYPOINT 指令
    3、在 docker run 命令行中指定
 
在下面的例子中,发现docker run运行后容器直接退出了,没有持续运行
 
root@docker-lab:~# docker run ubuntu pwd
/
root@docker-lab:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
a4f89f53eaa3        ubuntu              "pwd"               6 seconds ago        Exited (0) 5 seconds ago                       quizzical_shtern
root@docker-lab:~#
 
 
如何让容器长期运行
 
容器的生命周期依赖启动时执行的命令,只要该命令不结束,容器也就不会退出
 
下面的例子可以保证容器不会退出,但是这样占用了一个终端,当终端关闭的时候容器也就退出了,这并不是我们想要的效果
 
root@docker-lab:~# docker run busybox ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.070 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.103 ms
64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: seq=3 ttl=64 time=0.055 ms
64 bytes from 127.0.0.1: seq=4 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=5 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=6 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: seq=7 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=8 ttl=64 time=0.053 ms
64 bytes from 127.0.0.1: seq=9 ttl=64 time=0.053 ms
 
 
新开一个终端进行查看
 
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                            PORTS               NAMES
0683d1da57ed        busybox             "ping 127.0.0.1"    16 seconds ago        Up 16 seconds                                         ecstatic_visvesvaraya
 
 
docker run -d 可以让容器在后台启动,不会占用终端
 
当容器启动是会返回一长串字符,这串字符是该容器的ID,docker ps 中也看到一个ID,但是只有12位,这12位是容器完整ID的前12个字符
docker ps 中还能看到容器的名字,如果启动容器是不使用 --name 指定容器名称,docker会自动给容器起一个名字
 
长ID、短ID和NAME 都能代表一个具体的容器
 
root@docker-lab:~# docker run -d busybox ping  127.0.0.1
40112e9d5ae06f399c1c1ed4a1033725975b9a0473025d417aeee419d61fc213
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
40112e9d5ae0        busybox             "ping 127.0.0.1"    6 seconds ago        Up 5 seconds                            focused_mendeleev
root@docker-lab:~# docker stop 40112e9d5ae0
40112e9d5ae0
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                       PORTS               NAMES
40112e9d5ae0        busybox             "ping 127.0.0.1"    About a minute ago    Exited (137) 2 seconds ago                       focused_mendeleev
root@docker-lab:~#
root@docker-lab:~# docker run --name test022 -d busybox ping  127.0.0.1
80971ed377ae31567097d58c43a1e818d3d099c8a3881534683e36aa57a5c519
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                        PORTS               NAMES
80971ed377ae        busybox             "ping 127.0.0.1"    3 seconds ago        Up 2 seconds                                      test022
40112e9d5ae0        busybox             "ping 127.0.0.1"    About a minute ago   Exited (137) 47 seconds ago                       focused_mendeleev
 
 
 

转载于:https://www.cnblogs.com/www1707/p/10274994.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值