Linux系统Docker部署并使用及镜像加速器

目录

部署Docker

使用Docker制作镜像

Docker拉取镜像失败的解决方案

解决方法

1. 检查网络连接

2. 修改Docker配置文件

3. 重载配置并重启Docker服务

4. 验证镜像加速器是否正确配置


部署Docker

本教程以部署社区版Docker(docker-ce)为例。

  1. 执行以下命令,下载docker-ce的yum源。

    sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  2. 执行以下命令,安装docker-ce。

    sudo yum -y install docker-ce
  3. 执行以下命令,确认Docker是否部署成功。

    如果回显信息类似如图所示,表示Docker已部署成功。

    docker -v

    image..png

  4. 执行以下命令,启动Docker服务。

    sudo systemctl start docker
  5. 执行以下命令,设置Docker开机自启动。

    sudo systemctl enable docker
  6. 执行以下命令,查看Docker服务的运行状态。

    如果回显信息显示Active:active(running)时,表示Docker已启动。

    systemctl status docker

使用Docker制作镜像

本步骤指导您如何制作Docker镜像。

建议先配置国内镜像源

小贴士:国内用户若拉取缓慢,可配置镜像加速器(参考目录修改Docker配置文件)。

  1. 执行以下命令,拉取Nginx镜像。

    本示例以拉取Nginx 1.23.4为例。

    sudo docker pull nginx:1.23.4
  2. 执行以下命令,新建并编辑Dockerfile文件。

    1. 执行以下命令,新建并编辑Dockerfile文件。

      vim Dockerfile
    2. i进入编辑模式,并添加以下内容,改造原镜像。

      #声明基础镜像来源,本示例中基础镜像为拉取的nginx:1.23.4镜像
      FROM nginx:1.23.4
      #RUN后面接容器运行前需要执行的命令,本示例将Nginx的首页内容改为Welcome, Docker!
      RUN echo '<h1>Welcome, Docker!</h1>' > /usr/share/nginx/html/index.html
    3. Esc键,输入:wq并按Enter键,保存并退出Dockerfile文件。

  3. 执行以下命令,基于基础镜像nginx构建新镜像。

    命令格式为docker build -t [镜像名称]:[镜像版本] .命令末尾的.表示Dockerfile文件的路径,不能忽略。以基于构建新镜像image001:v1为例,则命令为:

    sudo docker build -t image001:v1 .
  4. 执行以下命令,查看新镜像是否构建成功。

    如下图回显所示,表示构建成功。

    sudo docker images 

    image..png

  5. 执行以下命令,将Nginx的80端口映射至服务器的8080端口,以启动镜像并实现通过公网访问。

    命令格式为docker run --name [容器名称] -p 8080:80 -d [镜像名称]:[镜像版本],示例命令:

    sudo docker run --name nginx-test -p 8080:80 -d image001:v1

Docker拉取镜像失败的解决方案

在从Docker的Hub库中拉取镜像时,可能会遇到以下错误:

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

这个问题通常是由于网络连接问题或镜像源访问受限导致的。以下是详细的解决方法。

解决方法
1. 检查网络连接

首先确保你的服务器能够正常访问互联网,可以尝试使用以下命令测试网络连接:

ping google.com

如果网络连接存在问题,请先修复网络。

2. 修改Docker配置文件

编辑Docker的配置文件 vim /etc/docker/daemon.json,添加或修改如下内容,以使用国内的镜像加速器:

在 Linux 系统中,/etc/docker/daemon.json 是 Docker 守护进程的配置文件,其注释需遵循 JSON 规范(JSON 本身不支持注释,但 Docker 实际解析时兼容单行注释 //)。以下是符合 Linux 配置文件规范的注释版本,确保注释清晰且不影响 Docker 解析:

{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
    "registry-mirrors": [
        "https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
    ]
}
{
    // 配置容器运行时(此处为 NVIDIA 显卡相关运行时,用于支持 GPU 加速的容器)
    "runtimes": {
        // 定义名为 "nvidia" 的运行时(需提前安装 nvidia-container-runtime)
        "nvidia": {
            "args": [],  // 传递给运行时的额外参数(此处为空)
            "path": "nvidia-container-runtime"  // 运行时可执行文件的路径
        }
    },
    // Docker 镜像仓库加速器列表(国内镜像源,加速镜像拉取)
    "registry-mirrors": [
        "https://docker.registry.cyou",         // 第三方镜像加速源
        "https://docker-cf.registry.cyou",      // 第三方镜像加速源(备用)
        "https://dockercf.jsdelivr.fyi",        // jsDelivr 提供的镜像加速源
        "https://docker.jsdelivr.fyi",          // jsDelivr 提供的镜像加速源(主)
        "https://dockertest.jsdelivr.fyi",      // jsDelivr 测试用加速源
        "https://mirror.aliyuncs.com",          // 阿里云镜像加速源
        "https://dockerproxy.com",              // 第三方通用镜像加速源
        "https://mirror.baidubce.com",          // 百度智能云镜像加速源
        "https://docker.m.daocloud.io",         //  DaoCloud 镜像加速源
        "https://docker.nju.edu.cn",            // 南京大学镜像加速源
        "https://docker.mirrors.sjtug.sjtu.edu.cn",  // 上海交通大学镜像加速源
        "https://docker.mirrors.ustc.edu.cn",   // 中国科学技术大学镜像加速源
        "https://mirror.iscas.ac.cn",           // 中国科学院镜像加速源
        "https://docker.rainbond.cc"            // Rainbond 平台提供的镜像加速源
    ]
}
3. 重载配置并重启Docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证镜像加速器是否正确配置

docker info | grep Registry

你应该会看到配置的镜像源列表。如果一切正常,重新尝试拉取镜像:

docker pull hello-world
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值