Docker核心-容器

本文部分摘自书籍《Docker技术入门与实战》
容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。如果认为虚拟机是模拟运行的一整套操作系统和泡在上面的应用,那么容器就是独立运行的一个或一组应用,以及它们的必须运行环境。

创建、启动容器

创建一个处于停止状态的容器:

docker create -it <REPOSITORY>:<TAG>

查看是否已经创建:

docker ps -a
运行上面的命令会打印出容器的列表,及容器信息。

启动处于停止状态的容器:

docker start <CONTAINER ID>(上面查看创建的容器时打印出来的CONTAINER ID信息)

创建并启动容器:

docker run <REPOSITORY>:<TAG>
启动容器与bash终端,允许用户进行交互(假设启动的是MySQL,那么通过MySQL的命令对MySQL进行终端交互:建表、建库....):
docker run -t -i <REPOSITORY>:<TAG> /bin/bash
-t:让docker分配一个伪终端并绑定到容器的标准输入上。
-i:让容器的标准输入保持打开。
退出容器:exit或者Ctrl+d(此时容器也会终止)

使用docker run来启动容器时,Docker在后台运行的标准操作有:

1. 检查本地是否存在指定的镜像。
2. 利用镜像创建并启动一个容器。
3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。
5. 从地址池配置一个IP地址给容器。
6. 执行用户指定的应用程序。
7. 执行完毕后容器被终止。

守护态运行(通常情况下,我们需要让docker容器在后台以守护态形式运行):

docker run -d <REPOSITORY>:<TAG>

查看守护态容器:

docker ps

查看容器输出日志

docker logs <CONTAINER ID>

终止容器

docker stop <CONTAINER ID> 
docker stop -t=<second>/--time=<second> <CONTAINER ID>
它会首先向容器发送SIGTERM信号,等待一段时间<-t/--time>(默认10秒),再发送SIGKILL信号终止容器。

强制终止容器:

docker kill <CONTAINER ID>
直接发送SIGKILL信号。

查看处于终止状态的容器ID:

docker ps -a -q

重启容器

重启终止状态容器

docker start <CONTAINER ID>

重启运行态容器

docker restart <CONTAINER ID>

进入容器

在创建并启动一个守护态的容器后,此时容器已经在后台运行,但无法看到容器中的信息。某些时候需要进入容器进行操作,进入的方法包括:docker attach命令、docker exec命令、nsenter工具等。

attach
docker attach <CONTAINER ID>

当多个创建偶同时attach到同一个容器时,所有创建偶都会同步显示,当某个创建偶因命令阻塞时,其他创建偶也无法执行操作。

exec
docker exec <CONTAINER ID>
上诉命令包含的参数请查看:
docker exec --help
善用help,你将不再死记命令。

删除容器

docker rm <CONTAINER ID>
docker rm [OPTIONS] <CONTAINER ID>
支持的选项:
-f/--force=false:强制终止并删除一个运行中的容器。
-l/--link=false:删除容器的连接,但保留容器。
-v/--volumes=false:删除容器挂载的数据卷。
例如删除运行中的容器:
docker rm -f <CONTAINER ID>

导出容器

指导出一个已经创建的容器到一个文件。

docker export <CONTAINER ID> > <file name>
例子:
docker export cesdvfk3 > /usr/local/mysql.tar

导入容器

本意是导入到本地镜像仓库,导入后可以使用docker images查看,它与docker load导入镜像存贮文件到本地镜像库类似,但是不一样:
- 容器文件将丢弃所有的历史记录和元数据信息,而镜像文件经保存完整记录。
- 从容器快照文件导入时可重新制定标签。

docker import <file>

上一篇:Docker核心-镜像
下一篇:Docker核心-仓库

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值