一、创建容器
容器创建:就是将镜像加载到容器的过程。
创建容器时如果没有指定容器名称,系统会自动创建一个名称。
docker create创建的容器并未实际启动,还需要执行docker start命令或docker run命令以启动容器。
格式: docker create [选项] 镜像名 <命令>
常用选项:
#-t 选项让 Docker 分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。-it,在交互模式下,用户可以通过所创建的终端来输入命令。
#更多的命令选项可以通过 man docker -run 命令来查看
二、查看容器的运行状态
格式:
docker ps [选项]
docker ps #查看当前运行状态的容器
docker ps -q #只显示运行状态的容器的ID
docker ps -a #-a 选项可以显示所有的容器
docker ps -aq #只显示所有容器的ID
docker ps -as #显示所有容器的大小
docker ps -n 2 #查看最后创建的2个镜像
常用选项
| 选项 | 含义 |
|---|---|
| -a | 显示所有的容器,包括未运行的容器 |
| -f | 根据条件过滤显示的内容 |
| -format | 指定返回值的模板文件 |
| -I | 显示最近创建的容器 |
| -n | 列出最近创建的容器 |
| -no-trunc | 不间断输出 |
| -q | 静默模式。只显示容器的编号 |
| -s | 显示总的大小 |
三、启动容器
docker start 容器的ID/名称 启动容器
四、创建并启动容器
docker run [选项] 镜像 [命令] [参数...]
需要在 docker run 命令之后添加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。
在后台运行容器
docker run -itd --name test1 centos:7 /bin/bash #创建容器并持续运行容器
当执行docker run 来创建容器时候,Docker 在后台的标准运行规程
1.检测本地是否存在指定的镜像,当镜像不存在时,会有公有仓库下载;
2.利用镜像创建并启动一个容器
3.分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
4.从宿主主机配置的网桥接口桥接一个虚拟机接口到容器中;
5.分配一个地址池中的IP地址给容器
6.执行用户指定的应用程序,执行完毕后容器被停止运行
无线循环命令
五、停止docker运行
格式:docker stop 容器的ID/名称
或 docker kill 容器的ID
docker stop $(docker ps -aq) 批量停止容器
或 docker ps -a |awk 'NR>=2 {print $1}' | xargs docker stop
六、进入容器
格式:docker exec -it 容器ID/名称 /bin/bash
-i 选项表示让容器的输入保持打开;
-t 选项表示让 Docker 分配一个伪终端。
七、查看容器的元数据
docker inspect 容器id
八、容器的日志
格式:
docker logs 容器ID/容器名
九、删除容器
docker rm <容器ID/名称> [-f]
docker rm $(docker ps -aq) 批量删除容器
十、宿主机和容器之间的文件复制
1.将宿主机中的文件复制到容器中
echo 123 > /opt/f1.txt
docker cp /opt/f1.txt 容器ID:/tmp/
2.将容器中的文件复制到宿主机中
docker cp 容器ID:/tmp/f1.txt ~/abc.txt #复制并重命名
十一、容器的导出与导入
#导出格式:
docker export 容器ID/名称 > 导出文件名
#导入格式:
cat 导出文件名 | docker import – 镜像名称:标签