docker之旅 2.在docker里面安装第一个镜像,docker里面卸载镜像

刚安装好docker ,兴匆匆的去安装 nginx 的时候,遇到了坑。

大概意思就是说我的centos7 SSL/TLS证书过期或者不可用。

[henry@192 ~]$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b0a0cf830b12: Retrying in 10 seconds 
8ddb1e6cdf34: Retrying in 10 seconds 
5252b206aac2: Retrying in 10 seconds 
988b92d96970: Waiting 
7102627a7a6e: Waiting 
93295add984d: Waiting 
ebde0aa1d1aa: Waiting 
error pulling image configuration: download failed after attempts=6: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2024-04-25T06:16:37+08:00 is after 2021-09-30T14:01:15Z

 

一、更新系统的 SSL/TLS 证书:

 

1.安装最新的 CA 证书包:

这将安装最新版本的 CA 证书包,其中包含了根证书等重要的 SSL/TLS 证书。

sudo yum install ca-certificates

 

2.更新证书存储库:

sudo update-ca-trust force-enable

这将强制更新证书存储库。

 

3.导入新的 CA 证书:

如果您有其他的 CA 证书需要添加到系统中,可以将它们放置在 /etc/pki/ca-trust/source/anchors/ 目录下,并运行以下命令:

sudo update-ca-trust extract

 

4.这将把这些证书添加到系统的证书存储库中。

验证更新:

您可以使用以下命令验证证书存储库是否已成功更新:

sudo update-ca-trust check

 

 

二、禁用 TLS 验证(不推荐):

如果以上方法都无法解决问题,您可以考虑暂时禁用 TLS 验证。但这不是一个推荐的解决方案,因为会降低安全性。

您可以通过编辑(管理员模式) Docker 配置文件来禁用 TLS 验证。打开 Docker 配置文件(一般位于 /etc/docker/daemon.json),添加以下内容:

{
 "insecure-registries": ["docker.io"]
}

 

 后来通过对比,以及查阅其他人的解决方案。解决这个问题有2个方法。

1.chatgpt推荐的 禁用 TLS 。通过配置   "insecure-registries": ["docker.io"]来实现。

2.通过修改注册源的方式。通过配置   "registry-mirrors" 来实现。

2种方法任何1种都可以。下面是   /etc/docker/daemon.json 的配置内容。

{
    "insecure-registries": ["docker.io"],
    

  "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://dockerhub.azk8s.cn",
    "https://registry.docker-cn.com"
     ]

}

 

保存并关闭文件

重启docker服务使更改生效

sudo systemctl restart docker

 

踩坑结束! 开始我们真正要做的事情。

 


 

要在 CentOS 7 上的 Docker 中安装 Nginx 并验证安装成功,您可以按照以下步骤进行操作:

  1. 在 Docker 中安装 Nginx:

    在 Docker 中安装 Nginx 非常简单,您可以使用 Docker Hub 上的官方 Nginx 镜像。执行以下命令:

    docker pull nginx

     这将从 Docker Hub 下载官方的 Nginx 镜像到您的本地 Docker 环境中。

  2. 启动 Nginx 容器:

    使用以下命令启动 Nginx 容器:

    docker run --name myNginx -d -p 80:80 nginx
    • --name my-nginx:指定容器的名称为 myNginx
    • -d:以后台方式运行容器。
    • -p 80:80:将容器的 80 端口映射到主机的 80 端口,这样您就可以通过主机的 IP 地址访问 Nginx 服务了。
  3. 验证 Nginx 是否运行:

    您可以使用 docker ps 命令来查看正在运行的 Docker 容器:

    docker ps

     如果 Nginx 容器正在运行,您应该会在输出中看到类似以下的内容:

    [henry@192 docker]$ docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                               NAMES
    a31d8355ec5c   nginx     "/docker-entrypoint.…"   21 minutes ago   Up 21 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   myNginx
    

    现在,Nginx 已经在 Docker 容器中运行,并且通过主机的 80 端口进行访问。

  4. 验证 Nginx 是否可访问:

    打开 Web 浏览器,输入您的 CentOS 7 主机的 IP 地址(如果是本地测试,可以输入 localhost127.0.0.1),然后访问 http://localhosthttp://<您的IP地址>。如果一切正常,您应该能够看到 Nginx 的欢迎页面,这意味着 Nginx 安装成功并正在运行。

通过以上步骤,您就成功在 CentOS 7 的 Docker 中安装并验证了 Nginx。


 

 

docker 下面如何删除一个 已经正在运行的nginx?

要卸载 Docker 中的已安装且正在运行的 Nginx 容器,您需要执行以下步骤:

  1. 停止 Nginx 容器: 首先,您需要停止正在运行的 Nginx 容器。您可以使用 docker ps 命令列出正在运行的容器,并找到 Nginx 容器的 ID 或名称。然后使用 docker stop 命令停止该容器。例如:

    docker stop <container_id_or_name>

     

  2. 删除 Nginx 容器: 一旦停止了 Nginx 容器,您就可以使用 docker rm 命令将其从系统中删除。例如:

    docker rm <container_id_or_name>

     

  3. 卸载 Nginx 镜像: 安装 Nginx 时可能已经下载了 Nginx 镜像到您的系统中。如果您想要彻底清除 Nginx 镜像,可以使用 docker rmi 命令。首先,您需要查找已安装的 Nginx 镜像的 ID 或名称,然后使用 docker rmi 命令删除它。例如:

docker rmi <image_id_or_name>

 

下面是我本机操作的记录:

[henry@192 docker]$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                               NAMES
a31d8355ec5c   nginx     "/docker-entrypoint.…"   21 minutes ago   Up 21 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   myNginx
[henry@192 docker]$ 
[henry@192 docker]$ 
[henry@192 docker]$ 
[henry@192 docker]$ docker stop a31d8355ec5c
a31d8355ec5c
[henry@192 docker]$ docker rm a31d8355ec5c
a31d8355ec5c
[henry@192 docker]$ docker rmi myNginx
Error response from daemon: invalid reference format: repository name (library/myNginx) must be lowercase
[henry@192 docker]$ docker rmi a31d8355ec5c
Error response from daemon: No such image: a31d8355ec5c:latest
[henry@192 docker]$ docker rmi nginx

 

posted @ 2024-04-25 07:06  He_LiangLiang  阅读(207)  评论(0编辑  收藏  举报