美文网首页
Docker 高级操作

Docker 高级操作

作者: 木叶苍蓝 | 来源:发表于2020-05-22 16:28 被阅读0次
依附容器docker attach

依附容器这个主要是针对交互型容器而言的,该命令有一定的局限性,可以作为了解即可,真正工作中使用较少。
要是用docker attach命令,首先要确保容器已经启动,然后使用该命令才能进入到容器中,具体操作步骤如下:

微信截图_20200522154213.png
此时容器已经关闭或者容器是一个后台容器,则该命令就无用武之地了。
由上面的操作大家可以看到,这个命令的局限性很大,使用场景也不多,因此大家作为一个了解即可。
容器内执行命令

如果容器在后台启动,则可以使用docker exec在容器内执行命令。不同于 docker attach,使用 docker exec 即使用户重终端退出,容器也不会停止运行,而使用docker attach 时,如果用户从终端退出,则容器会停止运行。

docker_exec.png
基于这样的特性,我们以后在操作容器内部时,基本上都是通过 docker exec命令来实现的。
查看容器信息

容器创建成功之后,用户可以通过docker inspect命令查看容器的详细信息,这些详细信息包括容器的 id 、容器名、环境变量、运行命令、主机配置、网络配置以及数据卷配置等信息。
使用format 参数可以只查看用户关心的数据。

docker_inspect.png
查看容器进程

使用docker top 命令可以查看容器中正在运行的进程,首先确保容器已经启动,然后执行docker top 命令,如下:

docker_top.png
查看容器日志

交互型容器查看日志很方便,因为日志就直接在控制台打印出了,但是对于后台型容器,如果要看日志,则可以使用docker提供的 docker logs 命令开查看,如下:

docker_logs.png
如下图,首先启动一个不停打日志的容器,然后利用 docker logs 命令查看日志,但是默认情况下只能看到历史日志,无法查看实时日志,使用-f参数后,就可以查看实时日志了。
使用--tail 参数可以精确控制日志的输出行数,-t 参数则可以显示日志的输出时间。
docker_logs_f.png
该命令在执行的过程中,首先输出最近的三行日志,同时由于添加了-f参数,因此,还会用其他日志持续输出。同时因为添加了-t 参数,时间随同日志一起打印出来了。

docker 的一大优势就是可移植性,因此容器 docker 容器可以随意的进行导入导出操作。

容器导出

既然是容器,我们当然希望docker 也能够像 VMWare那样方便的在不同系统之间拷贝,不过docker 并不像 VMWare导出容器那样方便(事实上,VMWare中不存在容器导出操作,直接拷贝安装目录即可)在docker中使用export命令可以导出容器,具体操作如下:
先创建一个nginx 容器,然后启动,启动成功之后,将本地一个index.html文件上传到容器中,修改nginx首页的显示内容。具体操作步骤如下:

docker run -itd --name nginx -p 8080:80 nginx
vi index.html
docker cp index.html nginx:/usr/share/nginx/html/

先运行一个名为nginx的容器,然后在宿主机中编辑一个index.html文件,编辑完成后,将该文件上传到容器中。然后在浏览器中输入http://localhost:8080可以看到新的页面。
容器已经修改成功了。
接下来通过 export命令将容器导出,如下:

docker export nginx > nginx.tar

该命令将容器导出成功之后,我们可以随意传播这个导出文件,可以发送给其他小伙伴去使用了,相对VMWare中的庞大的文件,这个导出文件非常小。一般可能只有几百兆,当然也可具体情况。

容器导入

其他小伙伴拿到这个文件,通过执行如下命令可以导入容器(如果自己重新导入,需要记得docker 中和 nginx 相关的容器和镜像删除)

docker_import.png
导入成功后,就可以使用docker run命令运行了。运行成功之后,我们发现自己定制的 index.html页面依然存在。

相关文章

网友评论

      本文标题:Docker 高级操作

      本文链接:https://www.haomeiwen.com/subject/hnwqahtx.html