91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker系列:第一講.Docker簡介與安裝

發布時間:2020-06-30 02:02:40 來源:網絡 閱讀:1114 作者:好筆記運維 欄目:云計算

什么是 Docker?

Docker的英文翻譯是“搬運工”的意思,他搬運的東西就是我們常說的集裝箱Container,Container 里面裝的是任意類型的 App,我們的開發人員可以通過 Docker 將App 變成一種標準化的可移植的自管理的組件,我們可以在任何主流的操作系統中開發、調試和運行。
Docker系列:第一講.Docker簡介與安裝

Docker和虛擬機有什么區別?

從概念上來看 Docker 和我們傳統的虛擬機比較類似,只是更加輕量級,更加方便使,Docker 和虛擬機最主要的區別有一下幾點:
Docker系列:第一講.Docker簡介與安裝

  • 虛擬化技術依賴的是物理CPU和內存,是硬件級別的;而我們的 Docker 是構建在操作系統層面的,利用操作系統的容器化技術,所以 Docker 同樣的可以運行在虛擬機上面。
  • 我們知道虛擬機中的系統就是我們常說的操作系統鏡像,比較復雜;而 Docker 比較輕量級,我們的可以用 Docker 部署一個獨立的 Redis,就類似于在虛擬機當中安裝一個 Redis 應用,但是我們用 Docker 部署的應用是完全隔離的。
  • 我們都知道傳統的虛擬化技術是通過快照來保存狀態的;而 Docker 引入了類似于源碼管理的機制,將容器的快照歷史版本一一記錄下來,切換成本非常之低。
  • 傳統虛擬化技術在構建系統的時候非常復雜;而 Docker 可以通過一個簡單的 Dockerfile 文件來構建整個容器,更重要的是 Dockerfile 可以手動編寫,這樣應用程序開發人員可以通過發布 Dockerfile 來定義應用的環境和依賴,這樣對于持續交付非常有利。

為啥要用容器?

應用容器是個啥樣子呢,一個做好的應用容器長得就像一個裝好了一組特定應用的虛擬機一樣,比如我現在想用 Redis,那我就找個裝好了 Redis 的容器就可以了,然后運行起來,我就能直接使用了。

那為什么不能直接安裝一個 Redis 呢?肯定是可行的,但是有的時候根據每個人電腦的不同,在安裝的時候可能會報出各種各樣的錯誤,萬一你的機器中毒了,你的電腦掛了,你所有的服務都需要重新安裝。但是有了 Docker 或者說有了容器就不一樣了,你就相當于有了一個可以運行起來的虛擬機,只要你能運行容器,Redis 的配置就省了。而且如果你想換個電腦,沒問題,很簡單,直接把容器”端過來”就可以使用容器里面的服務了。

Docker 架構

Docker 使用 C/S(客戶端/服務器)體系的架構,Docker 客戶端與 Docker 守護進程通信,Docker 守護進程負責構建,運行和分發 Docker 容器。Docker 客戶端和守護進程可以在同一個系統上運行,也可以將 Docker 客戶端連接到遠程 Docker 守護進程。Docker 客戶端和守護進程使用 REST API 通過UNIX套接字或網絡接口進行通信。
Docker系列:第一講.Docker簡介與安裝

  • Docker Damon:dockerd,用來監聽 Docker API 的請求和管理 Docker 對象,比如鏡像、容器、網絡和 Volume。
  • Docker Client:docker,docker client 是我們和 Docker 進行交互的最主要的方式方法,比如我們可以通過 docker run 命令來運行一個容器,然后我們的這個 client 會把命令發送給上面的 Dockerd,讓他來做真正事情。
  • Docker Registry:用來存儲 Docker 鏡像的倉庫,Docker Hub 是 Docker 官方提供的一個公共倉庫,而且 Docker 默認也是從 Docker Hub 上查找鏡像的,當然你也可以很方便的運行一個私有倉庫,當我們使用 docker pull 或者 docker run 命令時,就會從我們配置的 Docker 鏡像倉庫中去拉取鏡像,使用 docker push 命令時,會將我們構建的鏡像推送到對應的鏡像倉庫中。
  • Images:鏡像,鏡像是一個只讀模板,帶有創建 Docker 容器的說明,一般來說的,鏡像會基于另外的一些基礎鏡像并加上一些額外的自定義功能。比如,你可以構建一個基于 Centos 的鏡像,然后在這個基礎鏡像上面安裝一個 Nginx 服務器,這樣就可以構成一個屬于我們自己的鏡像了。
  • Containers:容器,容器是一個鏡像的可運行的實例,可以使用 Docker REST API 或者 CLI 來操作容器,容器的實質是進程,但與直接在宿主執行的進程不同,容器進程運行于屬于自己的獨立的命名空間。因此容器可以擁有自己的 root 文件系統、自己的網絡配置、自己的進程空間,甚至自己的用戶 ID 空間。容器內的進程是運行在一個隔離的環境里,使用起來,就好像是在一個獨立于宿主的系統下操作一樣。這種特性使得容器封裝的應用比直接在宿主運行更加安全。
  • 底層技術支持:Namespaces(做隔離)、CGroups(做資源限制)、UnionFS(鏡像和容器的分層) the-underlying-technology Docker 底層架構分析

Docker安裝

直接前往官方文檔選擇合適的平臺安裝即可,比如我們這里想要在centos系統上安裝 Docker,這前往地址https://docs.docker.com/install/linux/docker-ce/centos/根據提示安裝即可。

1、安裝依賴軟件包:

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

2、添加軟件倉庫,我們這里使用穩定版 Docker,執行下面命令添加 yum 倉庫地址:

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

# 官方源
# $ sudo yum-config-manager \
#     --add-repo \
#     https://download.docker.com/linux/centos/docker-ce.repo

3、然后直接安裝即可:

$ sudo yum install docker-ce

4、如果要安裝指定的版本,可以使用 yum list 列出可用的版本:

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable

5、比如這里可以安裝18.03.0.ce版本:

$ sudo yum install docker-ce-18.03.0.ce

6、要啟動 Docker 也非常簡單:

$ sudo systemctl enable docker
$ sudo systemctl start docker

7、另外一種安裝方式是可以直接下載指定的軟件包直接安裝即可,前往地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/找到合適的.rpm包下載,然后安裝即可:

$ sudo yum install /path/to/package.rpm

Docker 加速器

國內從 Docker Hub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。Docker 官方和國內很多云服務商都提供了國內加速器服務,例如:
Docker 官方提供的中國 registry mirror https://registry.docker-cn.com
七牛云加速器 https://reg-mirror.qiniu.com/

當配置某一個加速器地址之后,若發現拉取不到鏡像,請切換到另一個加速器地址。國內各大云服務商均提供了 Docker 鏡像加速服務,建議根據運行 Docker 的云平臺選擇對應的鏡像加速服務。

對于使用 systemd 的系統,請在 /etc/docker/daemon.json 中寫入如下內容(如果文件不存在請新建該文件)

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

注意:一定要保證該文件符合 json 規范,否則 Docker 將不能啟動。

重新啟動服務。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

測試 Docker 是否安裝正確

$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

若能正常輸出以上信息,則說明安裝成功。

添加內核參數

默認配置下,如果在 CentOS 使用 Docker CE 看到下面的這些警告信息:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

請添加內核配置參數以啟用這些功能。

$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

然后重新加載 sysctl.conf 即可

$ sudo sysctl -p
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秦安县| 宜良县| 楚雄市| 天津市| 桐乡市| 临沂市| 栾川县| 福清市| 灵丘县| 时尚| 宾川县| 登封市| 肇东市| 伊通| 南澳县| 大同县| 呼玛县| 三原县| 宁安市| 汉寿县| 安龙县| 梨树县| 浦县| 堆龙德庆县| 光山县| 兴安县| 亚东县| 辽源市| 金坛市| 临城县| 林口县| 梅河口市| 肇东市| 台东市| 汾西县| 双鸭山市| 东城区| 莎车县| 师宗县| 蒙城县| 延边|