容器之王--Docker的部署及基本操作演練

1.2 部署docker

1.2.1 容器工作方法
image-20250804195207336
1.2.2 部署第一個容器

官方站點:https://docs.docker.com/

1.2.2.1 配置軟件倉庫
]# cd /etc/yum.repos.d
]# vim docker.repo
[docker]
name = docker-ce
baseurl = https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable
gpgcheck = 0
1.2.2.2 安裝docker-ce并啟動服務
# 刪除紅帽自帶docker工具
[root@docker-node1 ~]# rpm -qa | grep podman
podman-4.6.1-5.el9.x86_64
cockpit-podman-76-1.el9_3.noarch
[root@docker-node1 ~]# rm -f podman-4.6.1-5.el9.x86_64
[root@docker-node1 ~]# rm -f cockpit-podman-76-1.el9_3.noarch
# 以下跟實驗步驟沒有關系:
# 這里介紹一下:如果想在虛擬機下載好的東西打包并發送給windows可以根據我以下的方法:
[root@docker-node2 ~]# dnf  download --resolve  docker-ce  --downloaddir=/mnt	#  --resolve 下載主包及所有依賴  --downloaddir= 下載到指定路徑 [root@docker-node2 ~]# cd /mnt
[root@docker-node2 mnt]# ls
containerd.io-1.7.27-3.1.el9.x86_64.rpm       docker-ce-cli-28.3.3-1.el9.x86_64.rpm
docker-buildx-plugin-0.26.1-1.el9.x86_64.rpm  docker-ce-rootless-extras-28.3.3-1.el9.x86_64.rpm
docker-ce-28.3.3-1.el9.x86_64.rpm             docker-compose-plugin-2.39.1-1.el9.x86_64.rpm[root@docker-node2 mnt]# mkdir docker
[root@docker-node2 mnt]# mv *.rpm docker
[root@docker-node2 mnt]# ls
docker[root@docker-node2 mnt]# tar zcf docker.tar.gz docker/
[root@docker-node2 mnt]# ls
docker  docker.tar.gz# 此時可以使用sftp技術進行傳輸到windows上
# 安裝docker(或者解壓自己的并dnf install *.rpm 即可至/mnt)
# 記得tar完之后要下載install
# [root@docker-harbor mnt]# ls
# docker  docker.tar.gz packages  packages.zip
# [root@docker-harbor mnt]# cd docker/
# 
# [root@docker-harbor docker]# yum install *.rpm]# yum install -y docker-ce# 編輯docker啟動文件,設定其使用iptables的網絡設定方式,默認使用nftables
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --iptables=true[root@docker-node1 ~]# systemctl daemon-reload
[root@docker-node1 ~]# systemctl restart docker[root@docker-node1 ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@docker-node1 ~]# sysctl -p
net.ipv4.ip_forward = 1]# systemctl  enable --now docker
]# docker info
1.2.2.3 激活內核網絡選項

(企業9不需要做,企業7需要做)

]# echo br_netfilter > /etc/modules-load.d/docker_mod.conf
]# modprobe br_netfilter
]# vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1]# sysctl --system
]# systemctl  restart docker

2.Docker的基本操作

2.1 Docker鏡像管理

2.1.1 搜索鏡像
[root@Docker-node1 ~]# docker search  nginx
NAME           DESCRIPTION                                      STARS     OFFICIAL
nginx          Official build of Nginx.                         20094     [OK]
@@@省略內容
參數說明
NAME鏡像名稱
DESCRIPTION鏡像說明
STARS點贊數量
OFFICIAL是否是官方的
2.1.2 拉取鏡像
# 從鏡像倉庫中拉取鏡像
[root@Docker-node1 ~]# docker pull busybox
[root@Docker-node1 ~]# docker pull nginx:1.26-alpine# 查看本地鏡像
[root@Docker-node1 ~]# docker images
REPOSITORY                        TAG           IMAGE ID       CREATED         SIZE
nginx                             latest        900dca2a61f5   7 weeks ago     188MB
nginx                             1.26-alpine   b32ed582bddb   7 weeks ago     43.2MB
ubuntu                            latest        35a88802559d   2 months ago    78.1MB
busybox                           latest        65ad0d468eb1   15 months ago   4.26MB
centos                            7             eeb6ee3f44bd   2 years ago     204MB
centos                            latest        5d0da3dc9764   2 years ago     231MB
gcr.io/distroless/base-debian12   latest        7273f3276b21   N/A             20.7MB
gcr.io/distroless/base-debian11   latest        2a6de77407bf   N/A             20.6MB

[!NOTE]

alpine 版本:nginx鏡像的最小安裝發型版本

2.1.3 查看鏡像信息
[root@Docker-node1 ~]# docker image inspect nginx:1.26-alpine
2.1.4 導入與導出鏡像
[root@docker-node1 mnt]# cd packages/
[root@docker-node1 packages]# ls[root@docker-node1 packages]# docker load -i busybox-latest.tar.gz
d51af96cf93e: Loading layer [==================================================>]  4.495MB/4.495MB
Loaded image: busybox:latest
[root@docker-node1 packages]# cd
[root@docker-node1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
busybox      latest    65ad0d468eb1   2 years ago   4.26MB
# 保存鏡像
[root@Docker-node1 ~]# docker image save nginx:latest -o nginx-latest.tar.gz
[root@Docker-node1 ~]# docker image save nginx:latest nginx:1.26-alpine -o nginx.tag.gz# 保存所有鏡像    
[root@Docker-node1 ~]# docker save  `docker images | awk 'NR>1{print $1":"$2}'` -o images.tar.gz

[!NOTE]

  • -o:指定導出鏡像的位置;
  • 可以同時導出多個鏡像到一個文件中;
  • 指定.tar.gz 可以導出并壓縮。
2.1.5 刪除鏡像
[root@Docker-node1 ~]# docker rmi nginx:latest[root@Docker-node1 ~]# docker rmi  `docker images | awk 'NR>1{print $1":"$2}'`

2.2 容器的常用操作

2.2.1 啟動容器
[root@docker-node1 ~]# docker load -i /mnt/packages/mario.tar.gz[root@docker-node1 ~]# docker load -i /mnt/packages/centos-7.tar.gz[root@docker-node1 ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
centos            7         eeb6ee3f44bd   3 years ago   204MB
timinglee/mario   latest    9a35a9e43e8c   9 years ago   198MB[root@Docker-node1 ~]# docker run  -d --name mario -p 2222:8080 timinglee/mario
# 可以在瀏覽器中測試172.25.254.10:2222,如下圖所示[root@Docker-node1 ~]# docker run -it --name centos7 centos:7
[root@3ba22e59734f /]#	#進入到容器中,按<ctrl>+<d>退出并停止容器,#按<ctrl>+<pq>退出但不停止容器# 重新進入容器
[root@docker-node1 ~]# docker attach centos-7
[root@e5b52a8ec38e ~]# exit			# 直接退出
exit#在容器中執行命令
[root@docker ~]# docker exec -it  test ifconfig
lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

image-20250805153002932

image-20250805153455511
-d			# 后臺運行
-i			# 交互式運行
-t			# 打開一個終端
--name		# 指定容器名稱
-p			# 端口映射 -p 80:8080	把容器8080端口映射到本機80端口
--rm		# 容器停止自動刪除容器
--network 	# 指定容器使用的網絡
2.2.2 查看容器運行信息
[root@Docker-node1 ~]# docker ps					# 查看當前運行容器
[root@Docker-node1 ~]# docker ps -a					# 查看所有容器
[root@Docker-node1 ~]# docker inspect busybox		# 查看容器運行的詳細信息
2.2.3 停止和運行容器
[root@Docker-node1 ~]# docker stop busybox			# 停止容器
[root@Docker-node1 ~]# docker kill busybox			# 殺死容器,可以使用信號
[root@Docker-node1 ~]# docker start busybox			# 開啟停止的容器

[!NOTE]

容器內的第一個進程必須一直處于運行的狀態,否則這個容器,就會處于退出狀態!

2.2.4 刪除容器
[root@Docker-node1 ~]# docker rm centos7			#刪除停止的容器[root@Docker-node1 ~]# docker rm -f busybox			#刪除運行的容器[root@Docker-node1 ~]# docker container prune -f	#刪除所有停止的容器
2.2.5 容器內容提交

默認情況下,容器被刪除后,在容器中的所有操作都會被清理,包括要保存的文件

如果想永久保存,那么我們需要把動作提交,提交后會生成新的鏡像

當我們在運行新鏡像后即可看到我們提交的內容

commit操作必須在容器運行時進行提交(再開一個終端進行操作即可)

[root@Docker-node1 ~]# docker run -it --name test busybox
/ # touch leefile											#在容器中建立文件
/ # ls
bin      etc      leefile  lib64    root     tmp      var
dev      home     lib      proc     sys      usr
/ #
[root@Docker-node1 ~]# docker rm test	#刪掉容器后	
test
[root@Docker-node1 ~]# docker run -it --name test busybox	#刪掉容器后開啟新的容器文件不存在	
/ # ls
bin    dev    etc    home   lib    lib64  proc   root   sys    tmp    usr    var
/ #[root@Docker-node1 ~]# docker commit -m "add leefile" test  busybox:v1
sha256:c8ff62b7480c951635acb6064acdfeb25282bd0c19cbffee0e51f3902cbfa4bd
[root@Docker-node1 ~]# docker images
REPOSITORY                        TAG           IMAGE ID       CREATED          SIZE
busybox                           v1            c8ff62b7480c   12 seconds ago   4.26MB[root@Docker-node1 ~]# docker image history busybox:v1
IMAGE          CREATED         CREATED BY                          SIZE      COMMENT
c8ff62b7480c   2 minutes ago   sh                                  17B       add leefile
65ad0d468eb1   15 months ago   BusyBox 1.36.1 (glibc), Debian 12   4.26MB

[!NOTE]

此方法不利于企業審計,所以不推薦使用,在企業中我們多用Dockerfile來構建鏡像

2.2.6 系統中的文件和容器中的文件傳輸
[root@Docker-node1 ~]# docker cp  test2:/leefile /mnt		# 把容器中的文件復制到本機
Successfully copied 1.54kB to /mnt
[root@Docker-node1 ~]# docker cp /etc/fstab  test2:/fstab	# 把本機文件復制到容器中
2.2.7 查詢容器內部日志
[root@Docker-node1 ~]# docker logs ...

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

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

相關文章

VFTO與局部放電-高壓設備絕緣系統的雙重挑戰與防護策略

目錄 引言VFTO的定義與形成機理VFTO對高壓設備絕緣系統的影響局部放電的危害與機制VFTO與局部放電的關聯性分析檢測與監測技術防護與抑制措施未來技術發展趨勢結論與展望引言 在現代電力系統中&#xff0c;超快速暫態過電壓&#xff08;Very Fast Transient Overvoltage, VFTO&…

Windows下Rust編碼實現MP4點播服務器

Rust編碼可以實現眾多簡潔、可靠、高效的應用&#xff0c;但語法邏輯要求嚴格&#xff0c;尤其是依賴庫的選擇調用&#xff0c;需要耐心堅持“推敲”。借助DeepSeek并反復編程調試和問答改進&#xff0c;可以最終得到完整有效的Rust編碼。下面分享Windows下Rust編碼實現MP4點播…

ubuntu-相關指令

1、串口1.1確認在系統中檢查設備是否正常加載&#xff0c;在終端輸入以下命令&#xff1a;way1&#xff1a;ll /dev | grep ttyUSB&#xff08;ll是LL的小寫&#xff09; way2&#xff1a;ll /dev | grep ttyACM way3&#xff1a;ll /dev | grep ttyCH343USB&#…

docker容器臨時文件去除,服務器容量空間

概述&#xff1a; 接到告警提醒&#xff0c;服務器容量不足&#xff0c;去查看了一下&#xff0c;發現確實100g左右容量已基本用完&#xff1b;分析&#xff1a; 1&#xff09;查看根目錄下哪些文件夾占用容量較大 使用命令“ du -ah --max-depth1 / ” 查看目標目錄下所有文件…

損耗對信號質量的影響

損耗通常分為介質損耗與導體損耗&#xff1a;介質損耗&#xff1a;介質被施加電場后介質內部帶電粒子在外加電場的作用力下進行微小移動介質損耗與頻率成正比導體損耗&#xff1a;導體由于存在電阻&#xff0c;在有電流流過時產生的熱量造成的損耗為導體損耗。同時&#xff0c;…

【42】【OpenCV C++】 計算圖像某一列像素方差 或 某一行像素的方差;

文章目錄1 要使用到的函數 和 原理1.1 cv::meanStdDev 函數詳解——計算均值和標準差1 .2 方差的通俗解釋2 代碼實現3 問題3.1 入口參數const cv::Mat& img 和 const cv::Mat img區別項目要求&#xff1a;C OPenCV 中 圖像img ,當 string ROIdirection “H”時&#xff0c;…

元圖 CAD 插件化革命:突破效率瓶頸,重構智能協作新范式

在建筑、機械、機電等工程領域&#xff0c;傳統CAD軟件的功能固化與場景割裂已成為效率提升的瓶頸。設計師常面臨“通用工具難適配專業需求”、“跨平臺協作效率低下”、“數據孤島阻礙創新”等痛點。元圖CAD憑借“場景插件化“核心技術&#xff0c;以模塊化能力突破行業桎梏&a…

T:歸并排序

歸并排序.逆序對簡介.歸并排序.習題.逆序對簡介 \;\;\;\;\;\;\;\;簡單介紹一下歸并排序的原理&#xff0c;逆序對的基本概念&#xff0c;然后收集相關的練習。 直接用一個基礎問題來引入。 因此知道了: \;\;\;\;\;\;\;\;逆序對就是一對數滿足 i<j&&nums[i]>nu…

三極管三種基本放大電路:共射、共集、共基放大電路

文章目錄一、共集放大電路1.靜態分析2.動態分析二、共基放大電路1.靜態分析2.動態分析總結如何判斷共射、共集、共基放大電路&#xff1f; 電路的輸入回路與輸出回路以發射極為公共端的電路稱為共射放大電路。 電路的輸入回路與輸出回路以集電極為公共端的電路稱為共集放大電路…

Function AI 助力用戶自主開發 MCP 服務,一鍵上云高效部署

作者&#xff1a;靖蘇 在 AI 與云原生協同創新的浪潮下&#xff0c;多模型、多場景智能應用日益普及。開發者面臨的首要挑戰&#xff0c;是如何實現模型之間、服務之間的高效協同&#xff0c;以及如何便捷地將自主研發能力拓展到云端&#xff0c;形成靈活可擴展的智能服務。MC…

c++編譯環境安裝(gcc、cmake)

一、gcc下載 下載地址&#xff1a;https://ftp.gnu.org/gnu/gcc/ 選擇想要下載的版本&#xff0c;然后解壓&#xff0c;查看 contrib/download_prerequisites 中的依賴。 以我下載的 gcc-7.3.0 為例&#xff0c; 二、安裝依賴包 【gmp】 https://ftp.gnu.org/gnu/gmp/ 【is…

基于貝葉斯的營銷組合模型實戰案例(PyMC實踐)

文章出自&#xff1a;基于營銷預算優化的媒體投入分配研究 本篇技術亮點在于結合了廣告飽和度和累積效應&#xff0c;通過數學模型和數值優化方法&#xff0c;精確計算電視與數字媒體的最佳預算分配比例&#xff0c;實現增量銷售最大化。該方法適合有多渠道廣告投放需求、預算…

react_05create-react-app腳手架詳細解析(export)

腳手架是什么&#xff1f; 是一種工具:快速生成項目的工程化結構&#xff0c;讓項目從搭建到開發&#xff0c;到部署&#xff0c;整個流程變得快速和便捷。 安裝過程: 1.安裝node,安裝完成后驗證版本,出現對應版本就表示成功 node --version npm --version2.React腳手架默認是使…

Uncaught TypeError: Illegal invocation

報錯信息Uncaught TypeError: Illegal invocation關鍵代碼$.operate.post(prefix "/edit", { "taskId": taskId, "taskStatus": completed });<input id"taskId" style"display: none;">[[${completeTask.taskId}]]&…

深入解析Go設計模式:責任鏈模式實戰

什么是責任鏈模式? 責任鏈模式(Chain of Responsibility Pattern)是一種行為設計模式,它通過構建處理者鏈來傳遞請求。每個處理者既能自行決定是否處理當前請求,也可將請求轉交給后續處理者。該模式的核心優勢在于解耦請求發送方與處理方,使多個對象都能獲得處理請求的機…

機器視覺系統工業相機的成像原理及如何選型

機器視覺系統是一種模擬人類視覺功能&#xff0c;通過光學裝置和非接觸式傳感器獲取圖像數據&#xff0c;并進行分析和處理&#xff0c;以實現對目標物體的識別、測量、檢測和定位等功能的智能化系統。其目的是讓機器能夠理解和解釋視覺信息&#xff0c;從而做出決策或執行任務…

Java如何快速實現短信登錄?

全文目錄&#xff1a;開篇語前言1. 短信登錄的工作原理2. 短信登錄的優點3. 短信登錄的缺點4. 短信登錄的實現示例&#xff1a;使用 Java 實現短信登錄的流程4.1 發送短信驗證碼&#xff08;偽代碼&#xff09;4.2 使用第三方短信平臺發送短信&#xff08;以阿里云為例&#xf…

HTML已死,HTML萬歲——重新思考DOM的底層設計理念

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

客戶管理系統的詳細項目框架結構

以下是針對客戶管理系統的詳細項目框架結構&#xff0c;整合了核心業務模塊&#xff08;客戶信息、合同管理、售前售后等&#xff09;&#xff0c;并補充了實用擴展模塊&#xff08;如數據統計、標簽管理等&#xff09;&#xff0c;嚴格遵循Django模塊化設計原則&#xff1a; c…

【01】OpenCV C#——C#開發環境OpenCvSharp 環境配置 工程搭建 及代碼測試

文章目錄一、OpenCV 介紹二、OpenCvSharp 介紹三、OpenCvSharp環境搭建3.1 創建新項目3.2 添加 NuGet組件3.3 代碼測試3.4 相較于 C OpenCV不同的之處四、LearnOpenCV有時候&#xff0c;單純c#做前端時會聯合C實現的dll來落地某些功能由于有時候會用C - Opencv實現算法后封裝成…