博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker基础-15-容器操作
阅读量:4302 次
发布时间:2019-05-27

本文共 1363 字,大约阅读时间需要 4 分钟。

前面一直在学习Docker命令和Dockerfile语法和相关练习,还有就是docker如何push镜像到共有仓库和私有仓库。这篇再来介绍或者复习几个docker容器的命令,也就是做一些容器常见的操作练习。

docker exec

这个命令docker exec是对运行状态的容器进行执行一个命令,exec就是execute的简写,单词就是执行的意思。例如我们基本上容器都是说linux环境下的容器,在linux下我们经常做的事情就是要执行各种shell命令,所以这个命令用到最多的场景是执行一个容器下的bash程序,然后输入一个命令进行管理和debug等。

首先我这里启动一个centos的容器,后台运行,确保这个容器一直在运行状态。

复习:通过docker run –it image名称,我们就可以交互启动一个容器(如果要后台运行需要添加参数-d),而且直接就以root用户登录了这个容器,可以执行一些命令,例如我上面输入的pwd 这个shell命令。有时候这种在debug是很不方便的,例如我想直接去运行这个容器的某一个程序,加入上面我截图这个ssh 会话不小心关闭了,如果我们再次运行这个命令,会产生第二个容器,这个并不是我们希望的。

接下来,介绍一个容器操作很重要的命令,那就是docker exec –it container名称 某程序

上面我是直接操作这个容器,运行里面的bash程序。这种操作是操作容器,并没有产生第二个容器。(这里需要注意下,你前面在使用docker run 这个命令后,不能让容器变成退出状态,不然你的docker exec –it 会话也会自动退出)

下面来举例使用docker exec来运行容器里面的python程序

这个时候你在上面python解释器中输入exit(). 会退出但是不会把这个容器的状态改成退出。有时候,我们还可以通过docker exec命令来查询IP地址,前提是这个容器已经安装了ip这个程序并添加到了系统环境变量。这个例子是在python:2.7的官方镜像启动的容器里操作的。

 

停止容器再删除

关于删除容器,我在docker命令学习文章介绍过。这里举例一个很常见的场景,有时候我们直接通过docker rm 容器名称会报无法删除,需要先停止容器然后再删除。

建议用docker ps –a 来代替docker container ls –a命令

上面两个容器都显示退出状态,那么就可以直接rm命令删除容器。有时候我们退出状态的容器有很多,而且我们想一次命令删除那些退出状态的,怎么实现呢。

上面红圈命令,不要奇怪,$()里面是一个表达式,就是列举出全部退出(quit)的容器id。

 

运行容器并且给容器取名

我们前面讲docker run都是自动生成容器名称,而且操作容器都是根据容器ID,其实操作容器也可以根据容器的名称。

图中参数—name=自定义容器名称,而且演示了可以根据容器自定义名称来删除容器。这个参数用处好多,例如一个docker服务器上,多个人使用,我们就可以通过—name来区分那些容器是谁在使用,避免误操作,特别是删除了别人的容器。

 

容器还有几个重要的命令,例如inpsect 和logs都是经常使用了,这个前面也介绍了,这里就不在重复。

转载地址:http://ykows.baihongyu.com/

你可能感兴趣的文章
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
全面理解Java内存模型
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>