【镜像】命名规范,命令(推拉,删查,导出导入,构建); 【容器】状态,命令(创建启动,删除,查看,日志,进入容器)。

1、镜像

1.1、命名规范

镜像名称[repository]:[tag]

  • repository:镜像仓库
  • tag:版本 【若不指定 tag,则表示最新版(latest)】

1.2、命令(❗)

命令帮助文档docker xxx - help

改容器镜像的repository和tag_redis

  • 远程
  • push:推送镜像
  • pull:拉取镜像
docker pull 镜像名称[:版本号]
  • 本地
  • images:查看本地镜像
  • rmi:删除
  • 导出
  • save:导出压缩包(.tar
docker save -o [目标文件名称] [镜像名称]
  • load:加载镜像
docker load -i [源文件]
  • 构建:build

1.3、case

1.3.1、搜索镜像

示例:DockerHub 最新版 Redis 镜像。

  1. 搜索镜像
  2. 查看镜像信息

1.3.2、操作镜像

命令帮助文档docker xxx - help

  1. 拉取镜像:若不指定 tag,则表示最新版(latest)
docker pull docker
  1. 查看本地镜像:镜像仓库,版本,镜像 ID,创建时间,大小
docker images
  1. 导出:如生成到 /tmp 下
docker save -o /tmp/redis.tar redis:latest
  1. 删除本地镜像
docker rmi redis::latest
  1. 导入
docker load -i /tmp/redis.tar

2、容器

2.1、状态

容器的 3 个状态

  • 运行:进程正常运行。
  • 暂停:进程挂起。不再分配 CPU 时间片,但不释放内存。
  • 停止:进程终止。不再分配 CPU 时间片,释放内存。(仅保留磁盘文件)

2.2、状态命令(❗)

命令帮助文档docker xxx - help

  • 创建/删除
  • run:通过镜像创建一个容器并运行。
  • rm:删除容器(包括磁盘文件)。
  • 停止/启动
  • stop:停止运行(exit)。
  • start:使停止容器再次运行(相比 run,容器已创建)。
  • 暂停
  • pause:暂停运行。
  • unpause:恢复运行。

2.2.1、run

创建并运行容器

docker run [OPTIONS] 镜像名 [指令] [参数...]

常用选项

  • --name:容器名
  • -p:建立宿主机和容器端口映射关系。
  • 容器是一个隔离环境,因此需要配置端口号映射。
  • 左侧是宿主机端口(自定义),右侧是容器端口(通常是应用的默认端口,如 MySQL-3306,Nginx-80)
  • -d:后台运行
  • -v:挂载数据卷(本文 3.3)

Hint:报错 IPv4 forwarding is disabled. Networking will not work

  • 原因:未启用 IPv4 转发功能。
  • 解决
# 添加配置
echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
# 重启网络
systemctl restart network
# 重启Docker
systemctl restart docker

2.2.2、rm

删除容器(包括磁盘文件)

docker rm [OPTIONS] 容器名

  • 不带选项时,只能删除非运行状态的容器。
  • -f:强制删除容器,无论是否处于运行状态。

2.3、操作命令(❗)

命令帮助文档docker xxx - help

2.3.1、ps

查看容器

docker ps [OPTIONS]

  • 不带选项时,仅列出运行中的容器。
  • -a:列出所有容器。

2.3.2、logs

查看容器运行日志

docker logs [OPTIONS] 容器名

  • 不带选项时,仅查看当前形成的日志。
  • -f:持续输出日志(Ctrl Z 退出)

2.3.3、exec

进入容器,执行命令

docker exec [OPTIONS] 容器名 命令

  • -it:开启标准输入终端。
  • 命令:进入容器后执行的命令,如 bash 表示进入 Linux CLI。

2.4、case

示例:创建并运行一个 Redis 容器,使用 Redis。

  1. 拉取镜像
docker pull redis
  1. 创建并运行容器,开启 AOF 持久化策略。
docker run --name myRedis -p 6379:6379 -d redis redis-server --appendonly yes
  1. 进入容器,执行 redis-cli 命令连接到 Redis 服务器。
docker exec -it myRedis redis-cli
  1. 成功连接到 Redis 服务器后,即可正常使用 Redis。