04-Docker-Container管理操作
04-Docker-Container管理操作
Docker Version: 19.03.5
😄 Written by Zak Zhu
参考
- 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