一、创建容器
容器是Docker的另一个核心概念。
简单地说,容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。
1.1创建一个容器
使用docker create命令创建的容器处于停止状态,需要执行docker start来启动它。
# docker create -it centos
# docker start nervous_neumann
1.2 新建并启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重启启动。使用docker run命令,等价于先执行docker create,再执行docker start命令。
[root@192-168-5-91 ~]# docker run -it --name my_centos centos /bin/bash [root@e827685ac394 /]# ps PID TTY TIME CMD 1 pts/0 00:00:00 bash 14 pts/0 00:00:00 ps
-i:以交互的模式运行容器
-t:为容器分配一个伪终端
--name:为容器起一个名字
/bin/bash:运行bash命令进入容器操作
1.3 退出容器
对于所创建的bash容器,当使用exit命令退出之后,该容器就自动处于终止状态,需要再执行docker start 启动容器。
若退出bash时,不退出容器则使用快捷键 ctrl + pq
1.4 以守护模式运行centos镜像,如果本地没有镜像的话,则先去默认的仓库下载镜像文件。
-d:以守护模式,容器进入后台运行
# docker run -d --name web-server nginx
二、终止、启动容器
docker stop web-server
docker start web-server
三、进入容器的方法
3.1 使用exec命令
docker exec -it web-server /bin/bash
3.2 使用accach命令
当多个窗口同时attach到一个容器时,所有的窗口都会同步显示。当某个窗口阻塞时,其它窗口也无法进行操作。
docker attach my-centos
3.3 使用nsenter命令
nsenter工具在util-linux包2.23版本后包含。
需要先获取容器的PID然后再进入容器中
# PID=$(docker inspect --format {{.State.Pid}} my-centos) # nsenter --target $PID --mount --uts --ipc --net --pid
三、删除容器
# docker rm my-centos # 删除终止状态的容器 # docker rm -f web-server # 强制删除运行状态的容器,-v 删除容器挂载的数据卷