一、镜像与仓库管理¶
1.1 查看 Docker 版本¶
查看 Docker 版本包括 Docker 版本号、API 版本号、对应的 Git Commit、Containerd 和 runC的版本信息等。
[root@db01 ~]# docker version
Client: Docker Engine - Community
Version: 20.10.24
API version: 1.41
Go version: go1.19.7
Git commit: 297e128
Built: Tue Apr 4 18:22:57 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.24
API version: 1.41 (minimum version 1.12)
Go version: go1.19.7
Git commit: 5d6db84
Built: Tue Apr 4 18:21:02 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.33
GitCommit: d2d58213f83a351ca8f528a95fbd145f5654e957
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
参数说明:
- OCI:Open Container Initiative的简称,由Linux基金会主导开发OCI规范和标准,目的是围绕容器格式和Runtime(运行时)制定的一个开放的工业化标准。
- Containerd:Docker为了兼容OCI标准,将容器Runtime及其管理功能从Docker守护进程中剥离出来,用于不启动Docker也能直接通过Containerd来管理容器。
- RunC:Docker按照OCF(Open Container Format)开放容器格式标准制定的一个轻量级工具,可以使用RunC不通过Docker引擎即可实现容器的启动、停止和资源隔离等功能。
1.2 查看 Docker 详细信息¶
Client: # Client 端
Debug Mode: false # 是否开启 Debug 模式
Server: # Server 端
Containers: 8 # 容器总数
Running: 4 # 正在运行的容器数量
Paused: 0 # 暂停的容器数量
Stopped: 4 # 停止的容器数量
Images: 8 # 镜像总数
Server Version: 20.10.4 # Docker Server 版本
Storage Driver: overlay2 # 存储驱动,一般为 overlay2,性能好速度快
Backing Filesystem: xfs # 服务器文件系统
Supports d_type: true # 目录条目类型,表示文件、管道或套接字
Native Overlay Diff: true
Logging Driver: json-file # 日志驱动,json-file 表示日志存储在本地
Cgroup Driver: cgroupfs # 限制和隔离的驱动,生产环境建议使用 systemd
Plugins: # 插件支持
Volume: local
Network: bridge, host, ipvlan, macvlan, null, overlay
Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, local, logentries, splunk, syslog # Docker 支持的日志驱动
Swarm: inactive # Docker 官方的容器编排工具,inactive 表示未开启
Docker Root Dir: /var/lib/docker # Docker 根目录,生产环境建议使用 SSD 硬盘或独立磁盘
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false # Docker 热更新,生产环境建议设置为 true
1.3 搜索镜像¶
[root@db01 ~]# docker search nginx
1.4 拉取下载镜像¶
# 拉取私有仓库的镜像
docker pull harbor.xxx.net/frontend:v1
# 拉取公网上的Nginx镜像,这里的公网就是指的是Docker Hub官网
docker pull nginx
# 拉取指定版本
docker pull nginx:1.15
1.5 查看本地镜像¶
# 查找包含nginx-v2字样的镜像
docker images | grep nginx-v2
1.6 更改镜像 Tag¶
# 自定义任意标签
docker tag nginx-v2 dotbalo/nginx-v2:test
# 自定义镜像仓库标签
docker tag nginx-v2:test 公司镜像地址/nginx-v2:test
1.7 镜像仓库登录¶
# 登录docker hub仓库
docker login
# 登录私有仓库
docker login 私有仓库
1.8 推送本地镜像到远程仓库¶
docker push dotbalo/nginx-v2:test
二、容器运行与维护¶
2.1 启动容器¶
使用 run -ti 前台启动一个容器
docker run -ti nginx bash
如果一个镜像需要一直运行,可以使用-d 进行后台启动
docker run -tid nginx bash
2.2 端口映射¶
# 使用-p参数实现端口映射
docker run -ti -p 1111:80 nginx bash
2.3 查看日志¶
# 查看末尾一行日志内容
docker logs -f 容器 ID/容器名称 --tail 1
2.4 数据持久化¶
# 使用-v参数挂载卷
docker run -ti -p 1111:80 -v /etc/hosts:/etc/hosts nginx bash
2.5 查看当前正在运行的容器¶
# 查看运行中的容器
docker ps
# 查看所有容器,包括已经退出的
docker ps -a
# 查看正在运行的容器(即显示出容器的 ID)
docker ps -q
# 查看所有容器的ID,包括已经退出的
docker ps -aq
2.6 进入容器¶
进入到一个后台运行的容器(即之前用-d 命令参数来指定后台运行方式的容器)
# 获取容器ID
docker ps | tail -1
# 进入容器
docker exec -ti 86b1c069024b bash
2.7 文件拷贝¶
# 将本机的文件拷贝到容器
docker cp README.md 92aceec0dcdd327a709bf0ec83:/tmp
# 将容器中的文件拷贝到宿主机上
docker cp 92aceec0dcdd327a709bf0ec83:/tmp/README.md /etc
2.8 删除容器和镜像¶
# 删除已经退出的容器
docker ps -a |grep Exited
docker rm 600e5da5c196
# 删除正在运行的容器
docker ps
docker stop 600e5da5c196
docker rm 600e5da5c196
# 删除本机镜像,前提镜像没有被容器使用
docker images | grep none
docker rmi 7ad745acca31
三、构建与检查¶
3.1 构建镜像¶
docker build -t image_name:image_tag .
3.2 查看容器运行信息¶
docker inspect 1de2ef08945f | grep Port
3.3 查看镜像构建信息¶
docker history 0e55626662ef