什么是 Container
- 通过 Image 创建
- 在Image layer 之上建立一个 container layer (可读性)
- Container 相当于 类的实例化对象
- Image 负责app的存储和分发,Container 负责运行app
容器的操作
- 启动容器:docker run
# 下载 ubuntu 镜像
docker pull ubuntu
# 创建容器并运行
docker run -it ubuntu /bin/bash
- 参数描述
- -i: 交互式操作
- -t: 终端
- ubuntu: ubuntu 镜像
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
输入此命令就创建并运行容器,且进入容器的交互式模式,需退出输入 exit 或(Ctrl + D)
- 查看容器:docker ps
# 查看所有容器
docker ps -a
- 启动一个停止的容器:docker start
docker start <容器 ID>
- 容器后台运行
docker run -itd --name ubuntu-test ubuntu /bin/bash
- 停止容器:docker stop
docker stop <容器 ID>
- 删除容器:docker rm
docker rm -f <容器 ID>
- 进入容器:docker exec
docker exec -it <容器 ID> /bin/bash
- 查看容器日志:docker logs
docker logs -f <容器 ID>
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
- 查看容器的进程:docker top
[root@localhost ~]# docker top 8af669b55d4a
UID PID PPID C STIME TTY TIME CMD
root 22852 22834 0 22:07 ? 00:00:00 /bin/bash
- 检查容器:docker inspect
docker top <容器 ID>
[
{
"Id": "8af669b55d4a0376aa962c6d146933c07da96bcf3bc34ef8a6272d3e63473f15",
"Created": "2020-02-08T14:00:21.201716122Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 22852,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-02-08T14:07:24.68830958Z",
"FinishedAt": "2020-02-08T14:03:21
......