生命周期管理

1. run 创建一个新容器并运行命令

语法

1
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

说明

  • -p 指定端口映射,格式:宿主机端口:容器端口
  • -P 随机端口映射
  • -d 后台运行
  • --name 自定义容器的名字
  • -v 绑定一个卷

docker create创建一个容器但是不启动,其他用法同run

实例

1
2
3
4
5
docker run
--name es #命名容器实例为es,不能放在其他参数后面
-d f75ee9faf718 #使用镜像id为f75ee9faf718的镜像(即elasticsearch:8.2.0),后台启动一个容(等效-d elasticsearch:8.2.0)
-p 8092:9200 #本机8092端口映射到容器内9200端口
-v /tmp/logs/es:/opt/es/logs #主机/tmp/logs/es路径映射到容器内/opt/es/logs路径

2、start/restart/stop启停容器

语法

1
2
3
docker start CONTAINER
docker restart CONTAINER
docker stop CONTAINER

实例

1
docker restart es  #重启名为es的容器

3、kill 杀掉进程

语法

1
docker kill [OPTIONS] CONTAINER

实例

1
docker kill -s KILL es   #向容器中的es发送KILL命令(即杀掉容器)

4、rm 删除一个或多个容器

语法

1
docker rm [OPTIONS] CONTAINER [CONTAINER...]

实例

1
2
docker rm -f es es01    #强制删除容器es、es01
docker rm $(docker ps -a -q) #删除所有已停止的容器

容器操作

1、ps 列出容器

语法

1
docker ps [OPTIONS]

说明

  • -a 显示所有的容器包括未运行的
  • -f 根据条件过滤
  • -n 列出最近创建的n个容器
  • -q 只显示容器编号

实例

1
2
3
docker ps -n 5   #最近创建的5个容器
docker ps -a -q #显示所有创建的容器ID(只显示ID)
docker ps #所有正在运行的容器信息,说明如下
1
2
3
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                     PORTS                NAMES
0bc0e8b63ed5 f75ee9faf718 "/bin/tini -- /usr/l…" 20 seconds ago Up 19 seconds 9200/tcp, 9300/tcp upbeat_curran
edb4453d025e f75ee9faf718 "/bin/tini -- /usr/l…" 3 minutes ago Exited (2) 3 minutes ago trusting_hypatia
  • CONTAINER ID 容器ID
  • IMAGE 使用的镜像ID
  • COMMAND 启动容器时运行的命令
  • CREATED 容器的创建时间
  • STATUS 容器状态:created已创建、restarting重启中、running运行中、removing迁移中、paused暂停、exited停止、dead死亡
  • PORTS 容器的端口信息和使用的连接类型TCP/UDP
  • NAMES 容器名称,没有指定时自动分配

2、top 查看容器中运行的进程信息,支持ps命令参数

1
docker top mysql    #查看容器中名为mysql进程的信息

3、logs 获取容器日志

语法

1
docker logs [OPTIONS] CONTAINER

说明

  • -f 跟踪日志输出
  • –since 某个时间之后的日志
  • -t 显示时间戳
  • –tail 最新的N条容器日志
    实例
    1
    2
    docker logs -f es   #跟踪查看容器es的日志输出
    docker logs --since 2022-02-02 --tail 10 es #2022-02-02之后的最新10条日志

镜像仓库

1、pull 从仓库更新/拉取指定镜像

语法

1
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

实例

1
2
3
docker pull tomcat:latest    #拉取tomcat的最后一个版本镜像
docker pull tomcat #同上
docker pull tomcat:8.1.8 #拉取tomcat的8.1.8版本镜像

2、search 从docker Hub中搜索镜像

语法

1
docker search [OPTIONS] TERM

实例

1
docker search -f stars=10 java   #搜索名包含Java且stars大于10的镜像

本地镜像管理

1
2
3
docker images #查看本地镜像列表,说明如下
docker images mysql #查看名为mysql的镜像列表
docker rmi -f tomcat:v8 # 强制删除本地镜像tomcat:v8
1
2
3
REPOSITORY      TAG       IMAGE ID       CREATED       SIZE
tomcat latest c795915cb678 2 weeks ago 680MB
elasticsearch 8.2.0 f75ee9faf718 7 weeks ago 1.21GB