资讯专栏INFORMATION COLUMN

Docker学习之路(四)守护式容器

jay_tian / 500人阅读

摘要:,,当前使用的容器名为,为。守护式容器没有交互式会话,适合运行应用程序和服务。大多数时候是需要以守护式来运行容器。与之前创建的容器相比,没有返回会话,只是返回了一个容器。删除容器运行中的容器无法删除,必须先停止。

windows 7, docker 1.3.2,当前使用的容器名为aoct,ID为614122c0aabb。

开启已经停止的容器

可以start + 容器名

$ sudo docker start aoct

start + 容器ID

$ sudo docker start 614122c0aabb

查看现在正在运行的容器:

$ sudo docker ps

还可以用docker restart重启。

附到容器上

Docker容器重新启动时,会沿用docker run命令指定的参数来运行,所以重新启动后会运行一个交互式会话shell。也可以用docker attach命令重新附到该容器的会话上:

$ sudo docker attach aoct

现在就重新回到容器的巴士提示符。

也可以用容器ID:

$ sudo docker attach 614122c0aabb
创建守护式容器

除了这些交互式运行的容器(interactive container),也可以创建长期运行的容器。守护式容器(daemonized container)没有交互式会话,适合运行应用程序和服务。大多数时候是需要以守护式来运行容器。

可以通过添加 -d 参数来实现,创建一个叫aofo的容器:

sudo docker run --name aofo -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

上面的命令会让容器在后台运行。使用了一个while循环,改循环会一直打印hello world,知道容器或其进程停止运行。

与之前创建的容器相比,没有返回shell会话,只是返回了一个容器ID。

查看现在正在运行的容器:

$ sudo docker ps

容器内部在干些什么

上面创建了一个在后台运行while循环的守护型容器,可以用docker logs查看容器日志:

$ sudo docker logs aofo

可以在命令后使用-f参数来健康Docker日志,这与tail -f非常相似:

$ sudo docker logs -f aofo

然后就会看到一直输出hello world。可以通过ctrl+c来退出监控个。

查看容器内的进程
$ sudo docker top aofo

可以看到容器内的所有进程(主要是while循环)、运行进程的用户、进程ID:

在容器内部运行进程

Docker 1.3 之后可以通过docker exec命令在容器内部额外启动新进程。可以在容器内运行两种进程:后台任务、交互式任务。后台任务在容器内运行且没有交互需求,交互式二年五则保持在前台运行。对于需要早容器内部贷款shell的任务,用交互式任务.

后台任务例子:
$ sudo docker exec -d daemon aofo touch /etc/new_config_file

代码解释:
-d标志标明要运行一个后台进程,后面指定要在内部执行这个命令的容器名,我用的是aofo。整句命令在aofo容器内创建了一个空文件夹new_config_file

交互式任务例子:
$ sudo docker exec -t -i aofo /bin/bash

代码解释:
和运行交互容器一一,这里-t-i标志位指明创建TTY并捕捉STDIN。后面指定要在内部执行这个命令的容器名,我用的是aofo。整句命令在aofo容器内创建新的bash对话,就可以在该容器运行其他命令了。

  

docker exec命令是在 Docker 1.3 引入的,之前版本不支持。可用nsenter命令

停止守护式容器

docker stop命令:

$ sudo docker stop aofo

也可以用容器ID只带容器名称:

$ sudo docker stop ffffd958443007

如果想快速停止容器,还可以用docker kill命令:

$ sudo docker kill aofo

可以用docker ps命令产科当前运行的容器。也可以用docker ps -n x,该命令会显示最后x个容器,不论这些容器是运行还是停止的。

$ sudo docker ps -n 2

深入容器

docker inspect获取更多的容器信息:

$ sudo docker inspect aofo

可以用-f或者--format标志来选定查看结果。

查看容器运行状态:

$ sudo docker inspect --format="{{ .State.Running }}" aofo

查看容器IP地址:

docker@boot2docker:~$ sudo docker inspect --format="{{ .NetworkSettings.IPAddress }}" aofo

我没有设置,所以返回空:

-f--format标志支持完整的GO语言模板。用它进程查询时,可以重复利用GO语言米板的优势。

可以同时制定多个容器,并显示每个容器的结果:

$ sudo docker inspect --format="{{ .State.Running }}" aofo aoct

  

除了查看容器,还可以浏览/var/lob/docker目录了解Docker的工作原理,该目录存放着Docker镜像、容器、容器配置。所有容器都保存在/var/lib/docker/containers目录下。

删除容器

运行中的容器无法删除,必须先停止。使用docker rm

$ sudo docker rm 容器ID

一次性删除所有容器:

$ sudo docker rm `docker ps -a -q`

这不是常规命令,只是小技巧。docker ps列出所有现有的容器,-a标志列出所有(all)容器,-q返回容器ID。这样就得到了容器ID列表,并传给docker rm命令,从而达到删除所有容器的目的。

【本人的学习笔记,主要是对《我的第一本Docker书》、《Docker —— 从入门到实践》的学习记录,并结合其他各种资源的学习。】

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26359.html

相关文章

  • Linux 学习笔记():Docker

    摘要:系统有两个程序服务端和客户端。其中服务端是一个服务进程,管理着所有的容器。客户端则扮演着服务端的远程控制器,可以用来控制的服务端进程。守护进程会处理复杂繁重的任务,例如建立运行发布你的容器。客户端和守护进程之间通过或者进行通信。 预期学习目标 Docker基本概念 配置本地Docker环境 容器的生命周期与配置 端口映射和容器链接 利用volume保存持久化容器数据 检查容器日志 监...

    ssshooter 评论0 收藏0
  • Docker学习笔记

    摘要:通过类似的操作来方便用户获取分发和更新应用镜像,指令简明,学习成本较低。例如存放操作系统镜像的仓库,称为仓库,其中可能包括等不同版本的镜像。管理服务如使用实际上是执行了命令。启动使用即退出容器,并后台运行。 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制...

    jk_v1 评论0 收藏0
  • Docker入门(一)

    摘要:作者麦冬白鲸鱼是什么入门教程容器是与系统其他部分隔离开的一系列进程,运行这些进程所需的所有文件都由另一个镜像提供,从开发到测试再到生产的整个过程中,容器都具有可移植性和一致性。快速容器的启动和创建无需启动,可以实现秒级甚至毫秒级的启动。 作者: 麦冬 白鲸鱼 docker 是什么 Docker 入门教程 Docker容器是与系统其他部分隔离开的一系列进程,运行这些进程所需的所有文件都由...

    zebrayoung 评论0 收藏0
  • runc容器逃逸漏洞最强后续:应对之策汇总与热点疑问解答

    摘要:年月日,研究人员通过邮件列表披露了容器逃逸漏洞的详情,根据的规定会在天后也就是年月日公开。在号当天已通过公众号文章详细分析了漏洞详情和用户的应对之策。 美国时间2019年2月11日晚,runc通过oss-security邮件列表披露了runc容器逃逸漏洞CVE-2019-5736的详情。runc是Docker、CRI-O、Containerd、Kubernetes等底层的容器运行时,此...

    PingCAP 评论0 收藏0
  • (全栈学习实践)docker搭建redis主从实践

    摘要:前面容器重建后需要重新运行命令绑定关联,需要命令行下生效。直接同步成功,在查看关系均有对方信息。是否要守护进程这里是经过多次测试,发现容器重启,也会正常启动。哨兵的配置于此类似,略过。 前面mysql容器重建后需要重新运行 change master to 命令绑定关联,8.0需要命令行下生效。redis首先想到用官方的,没想到进去各个基本shell命令无法使用,所以先弃了。这次由于官...

    wall2flower 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<