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不被占据, 于是容器也随之退出

容器运行过程:

  1. 检查本地是否存在指定的镜像, 如果没有就从指定的仓库下载
  2. 利用镜像启动一个容器
  3. 分配一个文件系统, 并在只读的镜像层上面挂载一层可读写层
  4. 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个IP给容器
  6. 执行用户指定的程序
  7. 执行完毕后停止容器

容器生命周期

docker containerd io很高_生命周期

容器管理命令

docker containerd io很高_生命周期_02


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_PATHdocker 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

docker containerd io很高_生命周期_03

  • 工具类容器
    如curl容器,redis-cli容器

E.G. 运行curl容器

docker container run --interactive --tty --rm appropriate/curl curl 172.17.0.5

docker containerd io很高_生命周期_04