CentOS 7 64 安裝 Docker

前言

在虛擬機中安裝 Docker 是一種常見的測試和開發環境搭建方式。通過在虛擬機上安裝 Docker,可以方便地創建和管理容器化應用,同時避免對宿主機系統造成影響。以下是在 CentOS 7 虛擬機中安裝 Docker 的詳細步驟。


1. 更新系統(可以不操作)

在安裝 Docker 之前,建議先更新虛擬機中的系統軟件包:

sudo yum update -y

在這里插入圖片描述

2. 卸載舊版本的 Docker(如果已安裝)

2.1 確認系統中是否已安裝 Docker

運行以下命令檢查系統中是否已安裝 Docker 相關包:

yum list installed | grep docker

如果沒有任何輸出,則說明系統中未安裝 Docker。

2.2 如果虛擬機中之前安裝過 Docker,需要先卸載舊版本
2.2.1 停止 Docker 服務

在卸載 Docker 之前,需要先停止 Docker 服務:

sudo systemctl stop docker
2.2.2 禁用 Docker 自啟動
sudo systemctl disable docker
2.2.3 卸載 Docker 軟件包

運行以下命令卸載 Docker 及其相關組件:

sudo yum remove docker  docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli  containerd.io \
docker-buildx-plugin \
docker-compose-plugin

在這里插入圖片描述

2.2.4 卸載 Docker 軟件包

刪除 Docker 的數據目錄和配置文件:

sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
2.2.5 刪除 Docker 用戶組

如果之前創建了 Docker 用戶組,可以刪除該用戶組:

sudo groupdel docker
2.2.6 清理 YUM 配置

刪除 Docker 的 YUM 倉庫配置文件:

sudo rm -rf /etc/yum.repos.d/docker-ce*
2.2.7 清理 YUM 緩存

清理 YUM 緩存以確保系統狀態一致:

sudo yum clean all
2.2.8 驗證 Docker 是否已完全卸載

運行以下命令檢查系統中是否還殘留 Docker 組件:

yum list installed | grep docker

如果沒有任何輸出,則表示 Docker 已完全卸載。
在這里插入圖片描述

3. 安裝必要的依賴

安裝一些必要的依賴包,這些包用于管理 Docker 的存儲和配置:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

在這里插入圖片描述

4. 添加 Docker 的官方 YUM 倉庫

使用 yum-utils 添加 Docker 的官方倉庫:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在這里插入圖片描述

5. 安裝 Docker

從 Docker 的官方倉庫安裝最新版本的 Docker:

yum -y install docker

在這里插入圖片描述

6. 啟動 Docker 服務

安裝完成后,啟動 Docker 守護進程并設置開機自啟:

sudo systemctl start docker
sudo systemctl enable docker

在這里插入圖片描述

7. 驗證 Docker 是否安裝成功

運行一個簡單的測試容器來驗證 Docker 是否正常工作:

sudo docker run hello-world

在這里插入圖片描述

7.1 Docker運行/拉取 hello-world 鏡像失敗或超時
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://zfzbet67.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker

在這里插入圖片描述

8. (可選)將用戶添加到 Docker 組

默認情況下,Docker 需要以 root 用戶運行。為了避免每次運行 Docker 命令時都需要使用 sudo,可以將當前用戶添加到 docker 組:

sudo usermod -aG docker $USER

然后重新登錄或重啟虛擬機以使更改生效。
在這里插入圖片描述
如果Docker提示組不存在,使用如下方式:

8.1 創建docker

如果docker組確實不存在,可以通過以下命令創建:

sudo groupadd docker

如果組已存在,該命令會提示“group ‘docker’ already exists”,但這不會影響后續操作。

8.2. 將用戶添加到docker

創建組后,需要將當前用戶添加到docker組中:

sudo usermod -aG docker $USER

此命令會將當前用戶($USER)添加到docker組中,而不會移除用戶原有的其他組。

8.3. 應用組變更

為了讓組變更生效,可以執行以下命令:

newgrp docker

或者重新登錄當前用戶。

8.4. 檢查組成員資格

通過以下命令確認用戶是否已成功加入docker組:

groups

如果輸出中包含docker,則表示用戶已正確加入。

8.5. 檢查Docker權限

如果問題仍未解決,可以檢查Docker的socket文件權限:

ls -l /var/run/docker.sock

該文件的組所有權應為docker,權限應為srw-rw----。如果不是,可以通過以下命令修復:

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock
8.6. 重啟Docker服務

如果上述步驟仍未解決問題,可以嘗試重啟Docker服務:

sudo systemctl restart docker
8.7. 測試Docker命令

完成上述步驟后,運行以下命令測試Docker是否可以正常工作:

docker ps

如果不再提示權限問題,則表示問題已解決。
在這里插入圖片描述

如果問題仍然存在,建議檢查Docker的安裝是否完整,或者查看系統日志以獲取更多信息。

9. 安裝 Docker Compose(可選)

如果需要使用 Docker Compose,可以通過以下命令安裝:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

在這里插入圖片描述

注意事項

  1. 內核版本:Docker 需要較新的內核版本(建議 3.10 或更高)。如果虛擬機的內核版本較低,可能需要升級內核。
  2. 虛擬機網絡配置:確保虛擬機的網絡配置正確,以便 Docker 容器可以正常訪問外部網絡。
  3. 存儲空間:Docker 容器和鏡像會占用一定的磁盤空間,請確保虛擬機有足夠的存儲空間。
  4. 防火墻規則:如果虛擬機啟用了防火墻,可能需要調整防火墻規則以允許 Docker 容器的網絡通信。

通過以上步驟,您可以在 CentOS 7 虛擬機中成功安裝并運行 Docker。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72490.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter_學習記錄_video_player、chewie 播放視頻

1. video_player 視頻播放 插件地址&#xff1a;https://pub.dev/packages/video_player 添加插件 導入頭文件 import package:video_player/video_player.dart;Android配置&#xff08;iOS不用配置&#xff09; 修改這個文件&#xff1a;/android/app/src/main/AndroidMani…

VSCode通過SSH免密遠程登錄Windows服務器

系列 1.1 VSCode通過SSH遠程登錄Windows服務器 1.2 VSCode通過SSH免密遠程登錄Windows服務器 文章目錄 系列1 準備工作2 本地電腦配置2.1 生成密鑰2.2 VS Code配置密鑰 3. 服務端配置3.1 配置SSH服務器sshd_config3.2 復制公鑰3.3 配置權限&#xff08;常見問題&#xff09;3.…

強大的數據庫DevOps工具:NineData 社區版

本文作者司馬遼太杰&#xff0c; gzh&#xff1a;程序猿讀歷史 在業務快速變化與數據安全日益重要的今天&#xff0c;生產數據庫變更管理、版本控制、數據使用是數據庫領域的核心挑戰之一。傳統的解決方式往往采用郵件或即時通訊工具發起審批流程&#xff0c;再通過堡壘機直連數…

離線服務器ollama新增qwen2:0.5b模型

離線服務器ollama新增qwen2:0.5b模型 Dify集成ollama前面已經介紹過離線服務器CentOS使用的docker安裝的ollama&#xff0c;其中在ollama中已經安裝了deepseek-r1:1.5b。目前的需求是需要再安裝一個qwen2:0.5b的模型&#xff0c;那么如何安裝呢&#xff1f; 1.首先在有網的服…

淺談StarRocks數據庫簡介及應用

StarRocks是一款高性能的實時分析型數據庫&#xff0c;專為復雜的SQL查詢提供極高的性能&#xff0c;尤其適用于數據分析場景。它是一款開源的新一代極速全場景MPP&#xff08;Massively Parallel Processing&#xff0c;大規模并行處理&#xff09;數據庫&#xff0c;致力于構…

Cadence學習筆記4

想到一個思路理解過程&#xff0c;記錄一下&#xff1a; 就是我在別的地方&#xff0c;前一天的那些 Lib 都不在了&#xff0c;突然發現自己好像就在 Cadence 中畫不了 PCB 了。這就引發了我思考在 Cadence 中如何進行繪制的一個整體的流程。 首先得有原理圖&#xff0c;那么原…

Linux--git

ok&#xff0c;我們今天來學習如何在Linux上建立鏈接git 版本控制器Git 不知道你?作或學習時&#xff0c;有沒有遇到這樣的情況&#xff1a;我們在編寫各種?檔時&#xff0c;為了防??檔丟失&#xff0c;更改 失誤&#xff0c;失誤后能恢復到原來的版本&#xff0c;不得不…

(七)Spring Boot學習——Redis使用

有部分內容是常用的&#xff0c;為了避免每次都查詢數據庫&#xff0c;將部分數據存入Redis。 一、 下載并安裝 Redis Windows 版的 Redis 官方已不再維護&#xff0c;你可以使用 微軟提供的 Redis for Windows 版本 或者 使用 WSL&#xff08;Windows Subsystem for Linux&a…

HarmonyOS NEXT 聲明式UI語法學習筆記-創建自定義組件

基礎語法概述 ArkTS的基本組成 裝飾器&#xff1a;用于裝飾類、結構、方法以及變量&#xff0c;并賦予其特殊含義。如上圖都是裝飾器&#xff0c;Component表示自定義組件&#xff0c;Entry表示表示自定義組件的入口組件&#xff0c;State表示組件中的狀態變量&#xff0c;當狀…

【ElasticSearch】學習筆記

一、lucene的組成 segment是一個具備完整搜索功能的最小單元。 多個segment組成了一個單機文本檢索庫lucene。 inverted index:倒排索引&#xff0c;用于快速根據關鍵詞找到對應的文章term index: 構建出關鍵詞的目錄樹&#xff0c;解決了term dictionary數據量過大&#xff…

SSL/TLS 1.2過程:Client端如何驗證服務端證書?

快速回顧非對稱加密和對稱加密 首先快速說一下非對稱加密和對稱加密。非對稱加密&#xff0c;就是有一個公鑰和私鑰(成對存在)。 公鑰對一段文本A加密得到文本B&#xff0c;只有對應的私鑰能對B解密得到A。 私鑰對一段文本C加密得到文本D&#xff0c;只有對應的公鑰能對D解密得…

ChatGPT、DeepSeek、Grok:AI 語言模型的差異與應用場景分析

&#x1f4dd;個人主頁&#x1f339;&#xff1a;一ge科研小菜雞-CSDN博客 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 1. 引言 人工智能&#xff08;AI&#xff09;語言模型正在快速發展&#xff0c;ChatGPT&#xff08;OpenAI&#xff09;、DeepSe…

正點原子[第三期]Arm(iMX6U)Linux移植學習筆記-4 uboot目錄分析

前言&#xff1a; 本文是根據嗶哩嗶哩網站上“Arm(iMX6U)Linux系統移植和根文件系統構鍵篇”視頻的學習筆記&#xff0c;在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。 引用&#xff1a; …

matlab 控制系統GUI設計-PID控制超前滯后控制

1、內容簡介 matlab164-控制系統GUI設計-PID控制超前滯后控制 可以交流、咨詢、答疑 2、內容說明 略 3、仿真分析 略 4、參考論文 略

介紹HTTP協議基本結構與Linux中基本實現HTTPServer

介紹HTTP協議基本結構與基本實現HTTPServer HTTP協議 前面已經了解了協議的重要性并且已經定義了屬于我們自己的協議&#xff0c;但是在網絡中&#xff0c;已經有一些成熟的協議&#xff0c;最常用的就是HTTP協議 在互聯網世界中&#xff0c;HTTP&#xff08;HyperText Tran…

Linux和RTOS簡析

以下是針對 Linux驅動開發、RTOS&#xff08;實時操作系統&#xff09;任務狀態&#xff08;就緒態&#xff09; 以及 互斥鎖 的詳細解釋&#xff1a; 一、Linux設備驅動 1. 什么是設備驅動&#xff1f; 定義&#xff1a;設備驅動是操作系統內核的一部分&#xff0c;用于管理…

docker 常用命令大全(二),docker 鏡像操作 ,持續更新

docker 相關的命令 在公共倉庫中下載 docker pull bitnami/postgresql:12.8.0查看鏡像 docker images |grep postgresql打tag推送到本地倉庫 docker tag postgresql:12.8.0 docker.公司域名.com/library/postgresql:12.8.0推送到本地倉庫 docker push docker.公司域名com…

Git使用和原理(3)

1.遠程操作 1.1分布式版本控制系統 我們?前所說的所有內容&#xff08;?作區&#xff0c;暫存區&#xff0c;版本庫等等&#xff09;&#xff0c;都是在本地&#xff01;也就是在你的筆記本或者 計算機上。?我們的 Git 其實是分布式版本控制系統&#xff01;什么意思呢&a…

[本周五題]Javascript面試常考題手撕場景UR緩存、new關鍵字、大數相加、最長遞增子序列、高并發請求、大文件上傳和WebWorks

LUR緩存實現 以下是 JavaScript 實現 LRU 緩存的詳細解析&#xff0c;結合核心原理與代碼實現&#xff0c;并標注來源&#xff1a; 一、LRU 緩存核心原理 LRU&#xff08;Least Recently Used&#xff09;緩存淘汰策略的核心思想是&#xff1a;當緩存容量滿時&#xff0c;優先…

c語言zixue

該文主要是記錄我學習中遇到的一些重點、易出問題的內容 教材p16.17 先從一個簡單的例子開始吧 #include <stdio.h> //編譯預處理命令 int main() //程序的主函數 {printf("To C"); //輸出語句return 0; //返回語句 } #include <stdio.h>是編譯預…