Docker 从安装到图形化本地私有仓库-Docker Registry UI:多系统(Ubuntu/Debian)以及CentOS7 部署与常用操作手册

Docker 安装与常用操作指南

本文档整合了 Docker 的多种安装方式(适用于不同 Linux 系统)及核心操作(镜像/容器管理),并优化了格式与结构,便于快速查阅和执行。

一、Docker 安装

通过 LinuxMirrors 脚本自动安装最新版 Docker 并配置源,无需手动调整。

1
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

适用于 Ubuntu/Debian 系列,需先配置阿里云 apt 源以提升下载速度。

步骤1:配置阿里云 apt 源

将以下内容替换 /etc/apt/sources.list 文件中的原有内容(以 Ubuntu 22.04 Jammy 为例):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

步骤2:更新源并安装 Docker

1
2
3
4
5
# 更新 apt 缓存
apt-get update

# 安装 Docker 及 Docker Compose
apt install docker docker-compose -y

步骤3:配置 Docker 镜像源(加速拉取)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建 Docker 配置目录
sudo mkdir -p /etc/docker

# 写入镜像源配置(使用轩辕镜像源)
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me"
]
}
EOF

# 重启 Docker 服务生效
sudo systemctl daemon-reload
sudo systemctl restart docker

适用于 CentOS 7,通过阿里云 yum 源安装 Docker。

步骤1:配置阿里云 yum 源

1
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

步骤2:清理缓存并生成新缓存

1
2
sudo yum clean all
sudo yum makecache

步骤3:安装 Docker 并配置镜像源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装 Docker
yum install docker -y

# 配置 Docker 镜像源(同 Ubuntu 步骤3,加速拉取)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me"
]
}
EOF

# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

二、Docker 常用核心操作

2.1 基础命令速查表

操作类型 命令模板 实战示例 说明
镜像拉取 docker pull [镜像名] docker pull nginx:alpine 从仓库下载镜像到本地
容器运行 docker run [选项] [镜像] docker run -d –name web -p 8080:80 nginx:alpine 后台启动容器并映射 8080 端口
容器状态 docker ps [选项] docker ps -a 查看所有容器(包括已停止的)
日志查看 docker logs [选项] [容器] docker logs -f –tail 100 web 实时查看容器最后 100 行日志
进入容器 docker exec -it [容器] sh docker exec -it web sh 交互式进入容器命令行
资源清理 docker system prune [选项] docker system prune -af 强制清理所有未使用的资源

2.2 镜像管理(搜索/拉取/导出/导入/删除)

1. 搜索镜像

仅支持搜索 Docker Hub 公共镜像(需网络可访问),无法搜索私有仓库。

1
2
docker search [OPTIONS] 镜像关键词
docker search dvwa # 示例:搜索 DVWA 靶场镜像

2. 拉取(下载)镜像

docker pull 仅下载镜像,不创建容器;未指定标签(TAG)时默认拉取 latest 版本。

1
2
3
4
5
# 命令格式
docker pull [镜像名]:[标签]

# 示例:拉取 DVWA 靶场镜像
docker pull citizenstig/dvwa:latest

3. 导出镜像(离线迁移)

将本地镜像保存为 tar 文件,用于无网络环境的机器迁移。

1
docker save citizenstig/dvwa:latest > dvwa.tar # 命令格式:docker save [镜像名] > 输出文件名.tar

4. 导入镜像(离线恢复)

tar 格式的镜像文件导入到本地 Docker 环境。

1
2
# 命令格式:docker load -i 镜像文件.tar
docker load -i dvwa.tar

5. 删除镜像

  • 若镜像关联运行中或已停止的容器,需先删除容器才能删除镜像;
  • 可使用 -f 选项强制删除,但不推荐(可能残留资源)。
1
2
3
4

docker kill c0f8f3f4e8bc && docker rm c0f8f3f4e8bc# 步骤1:停止并删除关联容器(容器ID/名称均可)
# 步骤2:删除镜像
docker rmi citizenstig/dvwa

2.3 容器管理(启动/销毁/重启/日志)

1. 启动容器(以 DVWA 为例)

通过 docker run 启动容器,关键参数说明:

  • -d:后台运行容器;
  • --name:指定容器名称(便于后续管理);
  • -p 主机端口:容器端口:映射主机端口到容器端口。

启动 DVWA 容器,映射主机 8080 端口到容器 80 端口

1
2
docker run -d --name dvwa -p 8080:80 citizenstig/dvwa:latest
docker ps -a

2. 销毁容器

停止并删除容器,删除后容器状态变为 Exited,可通过 docker rm 彻底删除。

1
2
3
4
5
# 方式1:先停止再删除(推荐)
docker stop dvwa && docker rm dvwa

# 方式2:直接强制删除运行中的容器(不推荐)
docker rm -f dvwa

3. 重启容器

仅适用于已停止(Exited 状态)的容器,通过容器 ID 或名称重启。

1
2
# 命令格式:docker restart 容器ID/容器名称
docker restart c0f8f3f4e8bc

4. 查看容器日志

用于排查容器运行问题,常用选项:

  • -t:显示日志时间戳;
  • --tail N:仅查看最后 N 行日志;
  • -f:实时跟踪日志输出。
    1
    2
    # 示例:查看 dvwa 容器最后 100 行日志并实时跟踪
    docker logs -t --tail 100 -f dvwa

2.4 查看本地镜像/容器

1
2
3
4
5
# 查看本地所有镜像
docker images

# 查看所有容器(包括已停止)
docker ps -a
  • docker images 输出说明
    • REPOSITORY:镜像仓库名;
    • TAG:镜像标签;
    • IMAGE ID:镜像唯一 ID;
    • CREATED:镜像创建时间;
    • SIZE:镜像大小。

2.5 一键清理

该命令会清除所有非running或者说非正常状态以及未在使用的docker镜像以及容器和网络

1
docker system prune -a

2.6 镜像标签

1
docker tag citizenstig/dvwa:latest 192.168.87.172:8080/dvwa:1.0

3.0 安装Docker图形私有仓库

安装docker-compose

1
apt install docker-compose

编辑vim /etc/docker/daemon.json,添加内容”insecure-registries”:[“宿主机IP:8080”]

1
2
3
4
{
"registry-mirrors": ["https://docker.1ms.run"],
"insecure-registries":["192.168.87.172:8080"]#IP改为自己的
}

创建docker-compose.yml,添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ports:
- 5000:5000
ui:
image: joxit/docker-registry-ui:1.5-static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=28.7私有仓库
- REGISTRY_URL=http://registry:5000
- CATALOG_ELEMENTS_LIMIT=1000
depends_on:
- registry

启动命令,在创建docker-compose.yml文件夹下执行

1
docker-compose up -d

访问 http://IP:8080

我们的镜像需要先打上标签,然后推送到仓库,才会在前端显示

名称前缀需要是为私有仓库的地址

1
docker pull citizenstig/dvwa && docker tag citizenstig/dvwa:latest 192.168.87.172:8080/dvwa:1.0

推送至仓库

1
docker push 192.168.87.172:8080/dvwa:1.

  • 点击镜像能看到具体的信息

  • 点击复制按钮可以快速复制拉取命令

3.1 使用私有仓库的镜像

添加私有仓库地址vim /etc/docker/daemon.json

1
2
3
4
{
"registry-mirrors": ["https://docker.1ms.run"],
"insecure-registries": ["192.168.87.172:5000"]
}

重启生效配置

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

拉取镜像

1
docker pull 192.168.87.172:8080/dvwa

速度超快( •̀ ω •́ )✧