docker之旅 2.在docker下安装第一个程序

news/发布时间2024/5/15 20:48:25

刚安装好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

 

网上找了一会,没有看到比较好的办法。

 

chatgpt 有一个 不推荐的做法

禁用 TLS 验证(不推荐):

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

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


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

  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

 

{"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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/22850677.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

结对编程 小学四则运算

程序代码 #include<iostream> #include<vector> #include<algorithm> #include<string> #include<map> #include<stack> using namespace std; int check(int s1, int s2, int s3, char c1, char c2) {int num1;int num2;if (c2 == * || c…

四月二十五日 Android studio关于使用sqlite数据库

昨天早上六点就起来要去排队考科目一,实在是困得很,昨天晚上早早就睡了,其实解释为什么昨天没有博客。 一个好消息就是我顺利的考过了,刚到90,还是很惊险。 还是说一下最近在干什么,之前是一直用的MySQL连接我的Android studio,最近在学习使用它自带的一个sqlite数据库,…

HASHCTF2024

Secret of Keyboard 签到脚本题,有些同学的脚本解出来大小写不正确可能是由于脚本无法识别shift+字母的组合键 首先使用tshark: tshark -r usb.pcap -T fields -e usb.capdata | sed /^\s*$/d > usbdata.txt 提取数据并删除空格 然后脚本一把梭出来:keyboard.py: normalK…

用DolphinScheduler轻松实现Flume数据采集任务自动化!

转载自天地风雷水火山泽 目的 因为我们的数仓数据源是Kafka,离线数仓需要用Flume采集Kafka中的数据到HDFS中。 在实际项目中,我们不可能一直在Xshell中启动Flume任务,一是因为项目的Flume任务很多,二是一旦Xshell页面关闭Flume任务就会停止,这样非常不方便,因此必须在后台…

记一次new ArrayList导致的cpu飙升问题排查

参考:https://mp.weixin.qq.com/s/8JDPOAvmKYP8JZxau45hdw前言当时场景正常的jvm监控曲线图产生问题的jvm监控曲线图具体分析结束语昨天线上容器突然cpu飙升,也是第一次排查这种问题所以记录一下~ 前言 首先问题是这样的,周五正在写文档,突然收到了线上报警,发现cpu占用达到…

RocketMQ 之 IoT 消息解析:物联网需要什么样的消息技术?

前言: 从初代开源消息队列崛起,到 PC 互联网、移动互联网爆发式发展,再到如今 IoT、云计算、云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头。 目前,消息中间件在国内许多行业的关键应用中扮演着至关重要的角色。随着数字化转型的深入,客户在使用消息…