docker之旅 2.在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

 

chatgpt 有一個 不推薦的做法

禁用 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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章