1、容器
容器是Docker的另一个核心概念。
简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。
创建容器
Docker的容器十分轻量级,用户可以随时创建和删除容器。
① 新建容器
sudo docker create
使用docker create命令新建的容器处于停止状态。
② 启动容器
sudo docker start
③ 新建并启动容器
sudo docker run
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。所需要的命令主要为docker run
,相当于先执行docker create
命令,再执行docker start
命令。
例如,下面的命令输出一个“Hello World”
当利用docker run来创建并启动容器时,Docker在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载。
- 利用镜像创建并启动一个容器。
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
- 从宿主机主机配置的网桥接口中桥接一个虚拟接口到容器中去。
- 从地址池配置一个IP地址给容器。
- 执行用户指定的应用程序。
- 执行完毕后容器被终止。
-t
:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上。
-i
:让容器的标准输入保持打开。
在交互模式下,用户可以通过所创建的终端来输入命令,例如:
ps
:查看进程
exit
:退出容器
对于bash容器来说,当使用exit 或Ctrl+d
命令退出之后,该容器就自动处于终止状态。
④ 守护态运行
sudo docker run -d [IMAGE]
为了让Docker容器在后台以守护态(Daemonized)形式运行。用户可以通过添加 -d
参数来实现。
容器启动会返回一个唯一的ID,也可以通过docker ps
命令来查看容器信息:
终止容器
① 终止容器
sudo docker stop
② 杀死容器
sudo docker ps -a -q
docker kill 命令会直接发送SIGKILL信号来强行终止容器。
③ 重启终止的容器
sudo docker start
④ 关闭并重启容器
sudo docker restart
进入容器
① 进入容器
-d
② 操作容器
sudo docker attach
删除容器
① 删除终止的容器
sudo docker rm [OPTIONS] CONTAINER [CONTAINER…]
查看处于终止状态的容器并删除:
sudo docker rm [CONTAINER ID]
② 删除运行的容器
sudo docker rm -f
导出容器
① 导出容器
sudo docker export CONTAINER
先查看所有的容器sudo docker ps -a
分别导出f2c930461de1容器和3b5ba2ddda9b容器到test_start.tar文件和test_stop.tar文件。
查看Home目录,发现已经导出。
导入容器
① 导入容器
sudo docker imprt
2、本章小节
容器是直接提供应用服务的组件,也是Docker实现快速的启停和高效服务性能的基础。