一.容器是什么?
- 容器(Container):容器是一种轻量级、可移植,并将应用程序进行打包的技术,使应用程序可以在几乎任何地方以相同的方式运行。
- docker将镜像文件运行起来后,产生的对象就是容器。容器就相当于是镜像运行起来的一个实例。
- 容器具备一定生命周期。
- 容器创建后,会存储在宿主机/var/lib/docker/containers目录下
二.容器的查看、创建、运行、暂停、取消暂停、重启、关闭、终止、删除:
- 查看:
docker ps //查看正在运行的容器
docker ps -a //查看所有运行过的容器,包括已经不运行的容器
- 创建一个待运行的容器:
(1)创建容器:docker create -it --name [给容器起名] [依赖镜像] [容器内部命令]
演示:docker create -it --name abcd ubuntu ls -a
(2)启动这个容器:docker start -a 容器名或容器id
演示:docker start -a abcd
- 创建新容器并后台运行:(加-d参数)
格式:docker run -itd --name 给容器起名 依赖镜像
演示:docker run -itd --name aaa ubuntu
- 暂停一个容器:
格式:docker pause 容器名或容器id
演示:docker pause 13ba395c5d0e
- 取消暂停:
格式:docker unpause 容器名或容器id
演示:docker unpause 13ba395c5d0e
- 容器重启:
格式:docker restart 容器名或容器id
演示:docker restart 13ba395c5d0e
- 容器关闭:(不是立即执行,而是延迟关闭容器)
格式:docker stop 容器名或容器id
演示:docker stop 13ba395c5d0e
- 容器终止:(立即强制关闭一个容器)
格式:docker kill 容器名或容器id
演示:docker kill 13ba395c5d0e
- 删除一个容器:
首先停止容器:docker stop 容器名或容器id
然后再删除容器:docker rm 容器名或容器id
或
对正在运行中的容器强制删除: docker rm -f 容器名或容器id
- 强制删除全部容器:
docker rm -f $(docker ps -q -a)
三.容器的进入与退出:
- 创建容器的同时进入该容器
格式 :docker run -it --name 给容器起名 依赖镜像 /bin/bash
演示:docker run -it --name haha ubuntu-min /bin/bash
- 手工方式进入容器
格式:docker exec -it 容器名或容器id /bin/bash
演示:docker exec -it haha /bin/bash
- 脚本方式进入容器
(1)在当前目录下sudo vim docker_in.sh,输入下面内容:
docker_in(){
NAME_ID=$1
PID=$(docker inspect --format {{.State.pid}} $NAME_ID)
nsenter --target $PID --mount --uts --ipc --net --pid
}
docker_in $1
(2) 给予脚本可执行权限: sudo chmod 777 docker_in.sh
(2)通过命令进入容器:./docker_in.sh [容器id]
四.基于容器创建镜像
- 方式一
格式:docker commit -m ”改动信息“ -a “作者信息” [容器id] [新镜像名:新镜像版本]
演示:docker commit -m "mkdir hello" -a "sxf" 5aec24ca8f6c newubuntu:v1.0
- 方式二
格式 (1)先导出: docker export 容器id > 模板文件名.tar
(2)再导入:cat 模板文件名 | docker import - 导入后新镜像名
演示(1)docker export 5aec24ca8f6c > haha.tar
(2)cat haha.tar | docker import - new2ubuntu
五.日志、信息、端口、重命名
- 查看容器运行日志
格式:docker logs 容器id
演示:docker logs 5aec24ca8f6c
- 查看容器详细信息
格式:docker inspect 容器id
演示:docker inspect 5aec24ca8f6c
- 查看容器端口信息
格式:docker port 容器id
演示:docker port 5aec24ca8f6c
- 容器重命名
格式:docker rename 容器id或容器名 新容器名
演示:docker rename 5aec24ca8f6c haha1