04-Docker-Container管理操作
Docker Version: 19.03.5
😄 Written by Zak Zhu
目录
- 04-Docker-Container管理操作
- 参考
- 容器运行须知
- 容器生命周期
- 容器管理命令
- 1. 生命周期
- 2. 查看操作
- 3. 命令执行
- 4. 文件复制
- 容器用途分类
参考
- Breeze老师的docker培训
- 马哥docker视频
容器运行须知
- 容器是为进程任务而生的
- 容器的生命周期是短暂的
一个容器建议只运行一个进程(容器内PID为1), 而且这个进程需要在容器内以Foreground方式运行, 不能以Background方式运行. 如果进程退出了, 那么容器就发现Foreground Stdout不被占据, 于是容器也随之退出
容器运行过程:
- 检查本地是否存在指定的镜像, 如果没有就从指定的仓库下载
- 利用镜像启动一个容器
- 分配一个文件系统, 并在只读的镜像层上面挂载一层可读写层
- 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个IP给容器
- 执行用户指定的程序
- 执行完毕后停止容器
容器生命周期
容器管理命令
1. 生命周期
- run
Run a command in a new container
- Usage:
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTION | COMMENT |
--detach | Run container in background and print container ID |
--interactive | Keep STDIN open even if not attached |
--tty | Allocate a pseudo-TTY |
--rm | Automatically remove the container when it exits |
... | ... |
Often use:
- 在后台运行容器及应用
docker container run --detach IMAGE [COMMAND] [ARG...]
- 在前台运行容器并交互
docker container run --interactive --tty IMAGE /bin/sh
- start
Start one or more stopped containers
- Usage:
docker container start [OPTIONS] CONTAINER [CONTAINER...]
Often use:
- 启动容器
docker container start CONTAINER [CONTAINER...]
- stop
Stop one or more running containers
- Usage:
docker container stop [OPTIONS] CONTAINER [CONTAINER...]
Often use:
- 停止容器
docker container stop CONTAINER [CONTAINER...]
- kill
Kill one or more running containers
- Usage:
docker container kill [OPTIONS] CONTAINER [CONTAINER...]
Often use:
- 杀掉容器
docker container kill CONTAINER [CONTAINER...]
- restart
Restart one or more containers
- Usage:
docker container restart [OPTIONS] CONTAINER [CONTAINER...]
Often use:
- 重启容器
docker container restart CONTAINER [CONTAINER...]
- rm
Remove one or more containers
- Usage:
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
OPTION | COMMENT |
--force | Force the removal of a running container (uses SIGKILL) |
--volumes | Remove the volumes associated with the container |
... | ... |
Often use:
- 删除已退出的容器
docker container rm CONTAINER [CONTAINER...]
- 删除正运行的容器
docker container rm --force CONTAINER [CONTAINER...]
- 删除容器及挂载卷
docker container rm --volumes CONTAINER [CONTAINER...]
2. 查看操作
- ls
List containers
- Usage:
docker container ls [OPTIONS]
OPTION | COMMENT |
--all | Show all containers (default shows just running) |
--no-trunc | Don't truncate output |
--quiet | Only display numeric IDs |
--size | Display total file sizes |
--latest | Show the latest created container (includes all states) |
... | ... |
Often use:
- 列出所有容器及其状态
docker container ls [ --all ]
- 显示最近一次创建容器
docker container ls --latest
- 列出所有容器的ID
docker container ls --quiet [ --no-trunc ]
- 列出所有容器的SIZE
docker container ls --size
- inspect
Display detailed information on one or more containers
- Usage:
docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
Often use:
- 显示容器详细信息
docker container inspect CONTAINER [CONTAINER...]
- logs
Fetch the logs of a container
- Usage:
docker container logs [OPTIONS] CONTAINER
OPTION | COMMENT |
--details | Show extra details provided to logs |
--follow | Follow log output |
--since string | Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes) |
--tail string | Number of lines to show from the end of the logs (default "all") |
--timestamps | Show timestamps |
--until string | Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes) |
- top
Display the running processes of a container
- Usage:
docker container top CONTAINER [ps OPTIONS]
Often use:
- 在宿主机上查看容器应用进程
docker container top CONTAINER
- stats
Display a live stream of container(s) resource usage statistics
- Usage:
docker container stats [OPTIONS] [CONTAINER...]
OPTION | COMMENT |
--all | Show all containers (default shows just running) |
--no-stream | Disable streaming stats and only pull the first result |
... | ... |
Often use:
- 查看所有容器的资源使用情况统计
docker container stats [ --all ] [ --no-stream ]
- 查看一个容器的资源使用情况统计
docker container stats [ --no-stream ] CONTAINER
3. 命令执行
- exec
Run a command in a running container
- Usage:
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTION | COMMENT |
--env list | Set environment variables |
--interactive | Keep STDIN open even if not attached |
--privileged | Give extended privileges to the command |
--tty | Allocate a pseudo-TTY |
--user string | Username or UID (format: <name|uid>[:<group|gid>]) |
--workdir string | Working directory inside the container |
... | ... |
Often use:
- 执行容器中的命令
docker container exec CONTAINER COMMAND [ARG...]
- 进入容器的SHELL
docker container exec --interactive --tty CONTAINER /bin/sh
4. 文件复制
- cp
Copy files/folders between a container and the local filesystem
- Usage:
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker container cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
OPTION | COMMENT |
--archive | Archive mode (copy all uid/gid information) |
--follow-link | Always follow symbol link in SRC_PATH |
容器用途分类
容器按用途大致可分为两类:
- 服务类容器
如 web server、database等
E.G. 运行httpd容器
docker container run --name="web-server" --detach httpd
- 工具类容器
如curl容器,redis-cli容器
E.G. 运行curl容器
docker container run --interactive --tty --rm appropriate/curl curl 172.17.0.5