【镜像】命名规范,命令(推拉,删查,导出导入,构建); 【容器】状态,命令(创建启动,删除,查看,日志,进入容器)。
1、镜像
1.1、命名规范
镜像名称:
[repository]:[tag]
- repository:镜像仓库
- tag:版本 【若不指定 tag,则表示最新版(latest)】
1.2、命令(❗)
命令帮助文档:
docker xxx - help
- 远程
- 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.3.2、操作镜像
命令帮助文档:
docker xxx - help
- 拉取镜像:若不指定 tag,则表示最新版(latest)
docker pull docker
- 查看本地镜像:镜像仓库,版本,镜像 ID,创建时间,大小
docker images
- 导出:如生成到 /tmp 下
docker save -o /tmp/redis.tar redis:latest
- 删除本地镜像
docker rmi redis::latest
- 导入
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。
- 拉取镜像
docker pull redis
- 创建并运行容器,开启 AOF 持久化策略。
docker run --name myRedis -p 6379:6379 -d redis redis-server --appendonly yes
- 进入容器,执行
redis-cli
命令连接到 Redis 服务器。
docker exec -it myRedis redis-cli
- 成功连接到 Redis 服务器后,即可正常使用 Redis。