Docker基础-15-容器操作

前面一直在学习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都是经常使用了,这个前面也介绍了,这里就不在重复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值