1-docker安裝和配置、虛擬化、配置國內源、鏡像操作、容器基本操作(run運行容器、-v目錄映射、-p端口映射、容器其他操作)

1 docker和虛擬化
2 docker安裝和配置
2.0 docker 中的一些概念
2.1 配置國內源(不配也可以,只是會從國外倉庫下載)
3 鏡像操作

4 容器操作
4.1 容器基本操作
4.2 run運行容器
4.3 -v目錄映射
4.4 -p端口映射
4.5 容器其他操作

1 docker和虛擬化

## 什么是虛擬化在計算機中,虛擬化(英語:Virtualization)是一種資源管理技術,是將計算機的各種實體資源,如服務器、網絡、內存及存儲等,予以抽象、轉換后呈現出來,打破【實體結構間的不可切割的障礙】,使用戶可以比原本的組態更好的方式來應用這些資源。這些資源的新虛擬部份是不受現有資源的架設方式,地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料存儲。在實際的生產環境中,虛擬化技術主要用來解決高性能的物理硬件產能過剩和老的舊的硬件產能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件  對資源充分利用虛擬化技術種類很多,例如:軟件虛擬化、硬件虛擬化、內存虛擬化、網絡虛擬化(vip)、桌面虛擬化、服務虛擬化、虛擬機等等。# 什么是Docker
Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內部的一個業余項目。它基于 Google 公司推出的 Go 語言實現。 項目后來加入了 Linux 基金會,遵從了 Apache 2.0 協議,項目代碼在 [GitHub](https://github.com/docker/docker) 上進行維護# 就是虛擬化的一種,更輕量級如果使用虛擬機---》一臺機器--》最多能運行 數量比較少的虛擬機如果使用docker--》一臺機器---》可以運行出成千上百臺docker容器# 容器與虛擬機比較

在這里插入圖片描述

2 docker安裝和配置

# 在linux機器上安裝
0 卸載dockeryum remove docker docker-common  docker-selinux docker-enginerm -rf /var/lib/docker1 yum 包更新到最新sudo yum update2 安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的.sudo yum install -y yum-utils device-mapper-persistent-data lvm23 設置yum源為阿里云sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4 安裝dockersudo yum install docker-ce5 安裝后查看docker版本docker -v6 啟動dockersystemctl status docker  # 查看裝填systemctl start docker   # 啟動systemctl stop docker    # 停止7 拉取鏡像-cento7      docker pull centos:7-redis       docker pull redis-mysql5.7    docker pull mysql:5.78 查看本地鏡像docker images9 運行成容器:運行centos鏡像成容器docker run -di --name=centos  centos:710 查看正在運行的容器docker psdocker ps -a11 進入容器docker exec -it 容器id/bin/bash

2.0 docker 中的一些概念

# docker 是一個cs架構軟件c端:客戶端s端:服務端只是現在c和s都在同一臺機器上# 鏡像(Images):一堆文件---》當成 虛擬機上有個ios文件,操作系統的文件[centos7.iso,windows10.iso]-鏡像哪里來?目前是從遠程倉庫拉取的
# 容器(containers)-鏡像運行---》得到容器---》以后就把容器當成一個可以使用的操作系統即可-一個鏡像---》可以運行得到很多容器
# 遠程倉庫(Registry)-放著一個個鏡像--》一堆文件# 鏡像和容器的關系-跟  類  和   對象-一個類,可以產生很多對象,每個對象是一個獨立個體

在這里插入圖片描述

2.1 國內源(不配也可以,只是會從國外倉庫下載)

# 遠程倉庫在國外[python 下第三方模塊:pypi上---》配置國內鏡像站]
# 使用國內源,下載鏡像時,速度會快---》阿里云
# 參照阿里云提供的筆記做:https://cr.console.aliyun.com/cn-shanghai/instances/mirrorssudo mkdir -p /etc/docker # 如果有,就不需要創建了
vim /etc/docker/daemon.json 
# 加入
{"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
# 保存退出
sudo systemctl daemon-reload # 重新加載docker配置
sudo systemctl restart docker# 重啟docker
# 國外docker 倉庫:
https://hub.docker.com/# 搜索想要找的鏡像,找到固定版本# 搜到后--》下載到本地
docker pull centos:centos7

3 鏡像操作

# 1 查找鏡像-從https://hub.docker.com/直接搜-使用命令:基本不用 docker search 名字# 2 下載鏡像docker pull 鏡像名:版本號   # 官方有的的才能下下來,沒有的找不到docker pull 鏡像名  # 如果不寫版本號,下最新docker pull mysql:5.7docker pull redis  # 3 查看本地鏡像
docker images  # 等同于 docker image ls
鏡像名字      鏡像標簽    鏡像id,以后通過id操作
REPOSITORY   TAG       IMAGE ID            CREATED       SIZE
centos       centos7   eeb6ee3f44bd        2 years ago   204MB# 4 刪除本地鏡像docker rmi 7614ae94  # 等同于docker image rm 7614ae9453d1docker rmi idid號一次性把本地所有鏡像都刪除docker images -q  # 查詢本地所有鏡像,只列出 id號docker rmi `docker images -q`# 總結:鏡像是一堆文件---》有的叫redis,有的叫centos就把鏡像當成---》一個操作系統內裝了某個軟件---》運行成容器--》就相當于這個操作系統上裝了某個軟件

在這里插入圖片描述

4 容器操作

# 鏡像是一堆文件
# 容器是由鏡像 運行得到的---》運行得到后---》你就把一個個的鏡像【當成】一個個虛擬機操作系統再運行即可

在這里插入圖片描述

在這里插入圖片描述

4.1 容器基本操作

# 把鏡像運行成容器,并且一個鏡像,可以運行出多個容器# 查看正在運行的容器docker ps
# 查看所有容器docker ps -a
# 查看最后一次運行的容器docker ps -l# 啟動停止的容器docker start id/名字# 停止運行的容器docker stop 7d5e# 停止所有在運行的容器docker stop `docker ps -q`# 一次性刪除所有容器docker rm `docker ps -a -q`# 記住四條:docker psdocker ps -adocker startdocker stop

4.2 run運行容器

#1 docker run 把鏡像運行成容器-docker run 參數-i 表示運行容器-d 以守護式容器在后臺運行,用這個參數創建出來的容器,命令行還在宿主機上,沒有進入到容器內部-t 表示容器啟動后會進入容器命令行。加入這參數后,容器創建就能登錄進去。即分配一個偽終端。--name 指定容器名字,如果不指定,會隨機一個名字-p 表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p做多個端口映射-v 表示目錄映射關系(前者是宿主機目錄,后者是容器的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上# 2 案例 -iddocker run -id --name=centos centos:7  # 執行完,命令在宿主機上,可以通過命令查看正在運行的容器# 3 案例  -it
docker run -it --name=centos centos:7 # 執行完,命令行在容器內,容器很干凈,幾乎啥軟件都沒有,可以exit退出到宿主機---》只要退出,容器就停了# 4 創建一個python3.9容器---》不進入docker run -id --name=python python:3.9# 5 啟動一個centos容器并且進入,名字叫mycentos,在內部裝個vim,然后退出# 6 重點:如果創建容器并進入---》只要退出---》容器就停了容器要運行,必須有個前臺進程在運行,并且是夯住(阻塞)的,否則容器就停了# 7 進入到容器內部# 在容器內執行命令docker exec 容器名字/id  命令# 利用這個特性-->進入到容器內部docker exec -it 容器名字/id /bin/bashdocker exec -it python sh# 退出,結束掉 /bin/bashexit

在這里插入圖片描述

4.3 -v目錄映射

# 運行出一個 centos77 容器,不進入, 做目錄映射
# 把宿主機的 /root/lqz文件夾  映射到 容器內部的 /lqz文件夾
# -v可以寫多個,可以是文件或文件夾
docker run -id -v /root/lqz:/lqz --name=centos77 centos:7容器內部修改文件---》會影響外部外部修改文件---》影響內部# 目錄映射好處是,后期咱們部署django項目1 有個django容器,做好映射,代碼放在宿主機上即可,以后更新了代碼,只要重啟容器,代碼就是最新了2 運行mysql容器---》mysql配置文件放在宿主機上做好映射mysql容器---》表數據,放到容器中---》如果刪了容器---》數據庫全沒了表數據,放在宿主機上---》把容器刪除---》表數據還在----》再啟動一個容器做好映射---》數據都還在

4.4 -p端口映射

# -p參數:端口映射  容器中啟動一個mysql5.7 --》容器中的3306監聽,宿主機3306沒人監聽,做端口映射后,宿主機的3306就被docker的這個容器監聽了# 啟動的mysql的root密碼是123456# 啟動mysql容器  -p 宿主機端口:容器端口
# 以后臺守護進程運行mysql容器,mysql的root用戶密碼是123456,宿主機和容器做了端口映射
docker run -id --name=mysql -p 3307:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7#  netstat -nlp |grep 3307 查看本機80端口占用情況
yum install net-tools -y# 以后訪問宿主機80端口就等于訪問容器的3306端口

在這里插入圖片描述

4.5 容器其他操作

# 啟動容器docker start 容器id
# 停止容器docker stop 容器id###mysql的容器底層的操作系統是 debian 裝軟件需要用 
apt-get update
apt-get install vim -y# 文件拷貝(宿主機執行)# 容器的文件copy到宿主機上(不是在容器內執行)docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄docker cp  ae1759ad935:/lqz/xx.txt /root/xx.txt# 宿主機的文件copy到容器中docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄docker cp /root/yy.txt ae1759ad935:/lqz/yy.txt# 查看容器IP地址    docker inspect 容器名稱  # 查看容器的詳細描述,很多docker inspect ae1759ad935 --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)# 在多個容器之間是可以ping通的(容器和宿主機也可以)
# centos:172.17.0.3
# mysql:172.17.0.2# 刪除容器(刪除已停止的容器)docker rm 容器id  docker rm `docker ps -a -q`# 無狀態的服務(在容器中盡量運行無狀態的服務)-mysql reids   有狀態,運行過程中產生數據,保存,容器刪除,數據就沒了-uwsgi+django  無狀態的服務

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

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

相關文章

干貨分享:好用的兩款封面制作工具

無論你是圖文博主還是視頻博主,做封面都是必不可少的。關于做封面的產品,我推薦兩個:如果你使用手機,我推薦使用醒圖;如果你使用電腦,我則推薦稿定設計。 01 醒圖 為什么醒圖如此出色呢? 首先…

什么是steam搬磚中的散戶、倒爺和倒狗?三者有什么區別?

steam/csgo游戲搬磚之如何注冊 csgo飾品市場有三種人:散戶,倒爺和倒狗。 散戶:定義和股票市場中的定義是一樣的,擁有同類型飾品數量占存世數量比例較小的人。 倒爺:擁有同類型飾品較多,但是不影響市場平衡…

能否在一臺電腦上安全地登錄多個Facebook賬號?

Facebook是一個流量大、用戶多的平臺,許多人可能需要在一臺設備上管理多個Facebook賬號,無論是出于個人或職業需求,都能帶來極大地便利。然而,保持每個賬號的安全性和隱私性卻是一個挑戰。本文將介紹如何在一臺電腦上安全地登錄多…

如何使用cp命令復制文件和目錄!【Linux命令合集】

如何使用cp命令復制文件和目錄!【Linux命令合集】 Linux命令 只要你使用Linux,你就會一直使用cp命令。用于復制文件和目錄。 常用組合鍵: # -r:復制整個目錄(遞歸) # -p:保留原始文件所有者、組、權限和時間戳 cp -rp foldA fold…

【Linux】:消息隊列和信號量

消息隊列和信號量 一.消息隊列1.原理2.消息隊列的各種接口1.創建消息隊列2.釋放消息隊列3.發送和接收信息 二.信號1.概念2.各種接口1.創建信號量2.銷毀信號量3.對信號量進行操作 三.一個現象 一.消息隊列 1.原理 這種消息隊列被稱為system V標準。 可以使用ipcs -q來查詢消息隊…

分頁符 分頁

【插入】---【分頁符】 目錄和一級標題得新起一頁

【React-Router】路由快速上手

1. 創建路由開發環境 # 使用CRA創建項目 npm create-react-app react-router-pro# 安裝最新的ReactRouter包 npm i react-router-dom2. 快速開始 // index.jsimport React from react; import ReactDOM from react-dom/client; import ./index.css; import App from ./App; i…

QEMU Guest Agent本地提權漏洞處理(CVE-2023-0664)

一、漏洞描述 QEMU Guest Agent(qga)類似于vmware中的 vmtools,相關安全報告顯示它的Windows版本安裝程序存在本地提權高危漏洞(CVE-2023-0664),攻擊者可利用該漏洞進行本地權限提升,獲得SYSTE…

音視頻5、libavformat-1

libavformat庫,是FFmpeg中用于處理各種媒體容器格式(media container format)的庫。它的兩個最主要的功能是 : demuxing:解封裝,將一個媒體文件分割為多個多媒體流 muxing:封裝,將多個多媒體數據流寫入到指定媒體容器格式的文件中 這兩個過程所做的…

智能化學習打破資源障礙 成為英語學習新趨勢

智能化學習是一種基于互聯網和人工智能技術的學習行為,通過網絡,學習者可以隨時隨地進行學習,真正打破了時間和空間的限制。與傳統線下學習方式相比,智能化學習更加方便、資源更加豐富,使海量英語學習資源唾手可得,智能化學習正逐漸成為中國孩子習得英語的重要方式。 隨著全球…

基于python和django旅游管理系統

基于python和django旅游管理系統 摘要 基于Python和Django的旅游管理系統是一個以現代化技術為基礎的系統,旨在提升旅游行業的管理效率和服務水平。該系統以Django框架為核心,結合Python編程語言的靈活性和強大的生態系統,實現了多方面的功能…

vue3之echarts漸變柱狀圖

vue3之echarts漸變柱狀圖 效果&#xff1a; 核心代碼&#xff1a; <template><div class"abnormal"><div class"chart" ref"chartsRef"></div></div> </template><script setup> import * as echa…

新手小白想做跨境電商,應該選第三方平臺還是獨立站?

近幾年在疫情的影響下&#xff0c;電商特有的“免接觸”模式迅速切中消費者的心理痛點&#xff0c;加上國內電商發展已經趨于平緩&#xff0c;很多線下店鋪被迫關閉&#xff0c;這也使得越來越多的大賣和平臺也不約而同布局跨境電商。而說到跨境電商&#xff0c;或許大家普遍想…

論文閱讀:MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model

論文標題&#xff1a; MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 翻譯&#xff1a; MedSegDiff&#xff1a;基于擴散概率模型的醫學圖像分割 名詞解釋&#xff1a; 高頻分量&#xff08;高頻信號&#xff09;對應著圖像變化劇烈的部分&…

視頻剪輯達人分享:高效減片頭時長并調整播放速度的技巧,提升視頻品質

在視頻剪輯的過程中&#xff0c;許多初學者經常會遇到一些問題&#xff0c;如片頭過長、播放速度不適當等&#xff0c;這些問題不僅會影響觀眾的觀看體驗&#xff0c;還會對視頻品質產生負面影響。在調整播放速度時&#xff0c;要根據視頻內容來進行調整。一般來說&#xff0c;…

探索穩定擴散技術中的LoRA權重激活:從模型微調到動漫風格圖像生成的全過程

多重LoRA權重激發穩定擴散 穩定擴散控制網絡流水線步驟1&#xff1a;環境準備步驟2&#xff1a;模型轉換步驟3&#xff1a;運行時流水線測試 啟用穩定擴散的LoRA權重步驟4-1&#xff1a;通過pytorch_lora_weights.bin啟用LoRA步驟4-2&#xff1a;通過safetensors類型的權重啟用…

008 OpenCV matchTemplate 模板匹配

目錄 一、環境 二、模板匹配算法原理 三、代碼演示 一、環境 本文使用環境為&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、模板匹配算法原理 cv.matchTemplate是OpenCV庫中的一個函數&#xff0c;用于在圖像中查找與模板匹配的特征。它的主要應用場景…

leetcode:645. 錯誤的集合(python3解法)

難度&#xff1a;簡單 集合 s 包含從 1 到 n 的整數。不幸的是&#xff0c;因為數據錯誤&#xff0c;導致集合里面某一個數字復制了成了集合里面的另外一個數字的值&#xff0c;導致集合 丟失了一個數字 并且 有一個數字重復 。 給定一個數組 nums 代表了集合 S 發生錯誤后的結…