Docker 簡單入門(一)

Docker 簡介

Docker是一個開源的容器引擎,它有助于更快地交付應。Docker可將應用程序和基礎設施層隔離,并且能將基礎設施當作程序-樣進行管理。使用Docker,可更快地打包、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期。

Docker的官方網站: https://www.docker.com/
Docker的GitHub: https://github.com/docker/docker/

Docker 架構

Docker 架構圖如下:


圖中包含的組件:
  • Docker daemon ( Docker守護進程)
    Docker daemon是一個運行在宿主機( DOCKER HOST )的后臺進程。可通過Docker客戶端與之通信。

  • Client ( Docker 客戶端)
    DoCker 客戶端是 DOCke :的用戶界面,它可以接受用戶命令和配置標識,并與 DOCker daemon 通信。圖中, docke : build 等都是 Docke :的相關命令。

  • Images ( Docker 鏡像)
    DOCker 鏡像是一個只讀模板,它包含創建 DoCker 容器的說明。它和系統安裝光盤有點像 ― 使用系統安裝光盤可以安裝系統,同理,使用 D 。 cke :鏡像可以運行 Docker 鏡像中的程序。

  • Container (容器)
    容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API 或者 Cll 命令來啟停、移動、刪除容器。

  • Registry
    Docker Registry 是一個集中存儲與分發鏡像的服務。構建完 Docker 鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry 來避免鏡像的手動復制。一個 Docker Registry 可包含多個 Doclcer 倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker 鏡像。這跟 Maven 的倉庫有點類似,如果把 Docker Registry 比作 Maven 倉庫的話,那么 Docker 倉庫就可理解為某 jar 包的路徑,而鏡像標簽則可理解為 jar 包的版本號。

    Docker Registry 可分為公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫過于官方的 Docker Hub ,這也是默認的 Doclcer Registry 。 Doclcer 枷 b 上存放著大量優秀的鏡像,可使用 DoCker 命令下載并使用。

Docker 安裝

DoCker 官方建議將 Docker 運行在 Linux 操作系統上。當然Docke也可運行在其他的平臺,例如windows、MacOS 等。
本次將演示如何在 CentOS 上安裝 Docker ,其他操作系統上的安裝可參考官方文檔: https://docs.docker.com/engine/installation/。

Docker 系統要求

Docker 運行在 CentOS 7 . X 之上。
Docke :需要安裝在 64 位平臺.

卸載舊版Docker

sudo yum -y remove docker-ce 執行該命令只會移除舊版本的 docker-ce , /var/lib/docker 目錄中的內容不會被刪除,因此,舊版本 Docker-ce所創建的鏡像、容器、卷等都會保留下來。

設置 Yum 源

Docker 有很多中安裝方式:例如Yum安裝、RPM安裝、Shell安裝。本次以Yum安裝為例。

  1. 安裝 yum-utils,這樣就能使用 yum-config-manager 工具設置 Yum 源。
    sudo yum install -y yum-utils
  2. 執行以下命令,添加 Docker 的 Yum 源。
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. [可選]啟用測試倉庫
    測試倉庫包含在 docker.repo 文件中,但默認情況下是禁用的。如需啟用測試倉庫,可使用以下命令:
    sudo yum-conflg-manager -enable docker-testing

    想要禁用測-試倉庫,可執行以下命令:

    sudo yum-config-manager -disable docker-testing

安裝 Docker

  1. 更新 Yum 包的索引。
    sudo yum makecache fast <!-- 不可用 -- >sudo yum makecache
  2. 安裝最新版本的 Docker。
    sudo yum -y install docker-ce

    這樣,經過-段時間的等待后, Docker 就安裝完成了。

  3. 在生產系統中,可能需要安裝指定版本的 Docker ,而并不總是安裝最新版本。執行以下命令,即可列出可用的 Docker 版本。
    yum list docker-ce.x86_64_showduplicates |sort -r

    其中, sort -r 命令表示對結果由高到低排序。列出 Docker 版本,可使用以下命令安裝指定版本的 Docker。

    sudo yum - y install docker-ce-<VERSION_STRIN6>
  4. 設置開機啟動
sudo systemctl enable docker
  1. 啟動 DokCero

    sudo systemctl start docker
  2. 執行以下命令,驗證安裝是否正確。

    sudo docker run hell0-World

    如看到類似于如下的結果,則說明安裝正確。
    Unable to find image 'hello-world:latest' locally
    ...
    Hello from docker!
    This message shows that your installation appears to be working correctly.
    ...

  3. 查看 Docker 版本。
    docker version 可看到類似于如下的結果:

卸載 Docker

  1. 卸載 Doclcer 軟件包。
    sudo yum -y remove docker-ce
  2. 如需刪除鏡像、容器、卷以及自定義的配置文件,可執行以下命令:
    sudo rm -rf /var/docker

配置阿里鏡像加速器

國內訪問 Docker Hub 的速度很不穩定,有時甚至出現連接不上的情況。本節來為 Docker 配置鏡像加速器,從而解決這個問題。目前國內很多云服務商都提供了鏡像加速的服務。常用的鏡像加速器有:阿里云加速器、 DaoCloud 加速器等。各廠商鏡像加速器的使用方式大致類似,本節以阿里云加速器為例進行講解。

  1. 打開阿里云控制臺-容器鏡像服務-鏡像中心-鏡像加速器
  2. 修改配置文件
    vi /etc/docker/daemon.json

    添加加速地址

  3. 重啟docker
systemctl daemon-reload
systemctl restart docker

學習于:《Spring Cloud與Docker 微服務架構實戰》 — 周立

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

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

相關文章

PDF解決方案(2)--文件轉PDF

相關專題鏈接&#xff1a; PDF解決方案&#xff08;1&#xff09;--文件上傳 PDF解決方案&#xff08;2&#xff09;--文件轉PDF PDF解決方案&#xff08;3&#xff09;--PDF轉SWF PDF解決方案&#xff08;4&#xff09;--在線瀏覽 前言&#xff1a;上一篇中講到的文件上傳&…

Docker 常用命令(二)

Docker 鏡像常用命令 搜索鏡像 可使用 docker search 命令搜索存放在 Docker Hub 中的鏡像。例如&#xff1a; docker search java 執行該命令后&#xff0c; Docker 就會在 Docker Hub 中搜索含有 java 這個關鍵詞的鏡像倉庫。執行該命令后&#xff0c;可看到類似于如下的表格…

Docker 使用Dockerfile構建Docker(三)

Dockerfile 簡單使用 先來編寫一個最簡單的 Dockerfile。 例如&#xff1a; FROM nginx RUN echo <h1>使用Dockerfile構建鏡像</h1> > /usr/share/nginx/html/index.html 該 Dockerfile 非常簡單&#xff0c;其中的 FORM 、 RUN 都是 Dockerfile 的指令。 FROM …

網絡流之最大流問題

Reference&#xff1a; http://blog.csdn.net/rrerre/article/details/6751520 http://blog.csdn.net/y990041769/article/details/21026445 http://www.nocow.cn/index.php/Translate:USACO/NetworkFlow 最大流Edmonds_Karp算法模板&#xff1a; EK算法即增廣路算法。 最大流最…

delphi讀取excel

簡單的例子 1 procedure TForm1.Button1Click(Sender: TObject);2 var3 ExcelApp,MyWorkBook: OLEVariant;4 begin5 opendialog1.Filter:Microsoft Excel Workbook (*.xls)|*.XLS|; 6 edit2.Text : sheet1;7 if opendialog1.Execute then8 begin9 edit1.Text:o…

Docker-compose 常用命令及網絡設置(五)

Docker Compose 常用命令 build 構建或重新構建服務。服務被構建后將會以 project_service的形式標記,例如:comoretest db。help 査看指定命令的幫助文檔,該命令非常實用。 docker-compose所有命令的幫助文檔都可通過該命令查看。 docker-compose he lp COMMAND 示例 docker-co…

淺談 trie樹 及其實現

定義&#xff1a;又稱字典樹&#xff0c;單詞查找樹或者前綴樹&#xff0c;是一種用于快速檢索的多叉樹結構&#xff0c; 如英文字母的字典樹是一個26叉樹&#xff0c;數字的字典樹是一個10叉樹。 核心思想&#xff1a;是空間換時間.利用字符串的公共前綴來降低查詢時間的開銷以…

Docker-compose 安裝與基本使用(四)

安裝 Docker-Compose Compose有多種安裝方式,例如通過 shell, pip以及將 Compose作為容器安裝等。本次安裝以Shell 為主。 通過以下命令自動下載并安裝適應系統版本的 Compose: curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(un…

如何開始DDD(完)

連續寫了兩篇文章&#xff0c;這一篇我想是序的完結篇了。結合用戶注冊的例子再將他簡單豐富一下。在這里只添加一個簡單需求&#xff0c;就是用戶注冊成功后給用戶發一封郵件。補充一下之前的代碼 public class DomainService {public void Register(User user){if (_userRepo…

git pull 報錯:Untracked Fles Preventing Merge

場景 使用 git pull 命令更新報錯解決 找到對應的文件刪除后重新打開項目。

關于string,我今天科普的

今天下午朋友討論組上討論一個關于string的問題&#xff0c;問題是這樣的&#xff0c;string a"aaa";string ba;a"bbb",為什么測試b的值不改變&#xff1f;之前我看過一個文章&#xff0c;知道肯定不相等&#xff0c;因為引用地址的一系列問題&#xff0c;…

git pull 報錯:The following untracked working tree files would be overwritten by merge

場景 使用 git pull 命令更新報錯 Updating d652d1c..fa05549 error: The following untracked working tree files would be overwritten by merge:.idea/encodings.xmlPlease move or remove them before you can merge. Aborting 解決 使用 git clean -d -fx 命令即可。

SpringBoot 配置多數據源

項目Git地址&#xff1a;SpringBoot 配置多數據源&#xff1a;Jacob-multi-data-source 準備工作 準備兩個數據庫(此模塊中兩個數據庫一個為本地 一個為遠程&#xff0c;本地為主&#xff0c;遠程為從)。然后建表。 #本地庫 CREATE TABLE username (id bigint(11) NOT NULL AUT…

HDU 2912

直線關于球的多次反射&#xff0c;求最后一次反射點 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>using namespace std; const double inf1e10; const double eps1e-8; struct point {doub…

EMVTag系列3《持卡人基本信息數據》

9F61 持卡人證件號 L&#xff1a;2–26 R&#xff08;需求&#xff09;&#xff1a;數據應存在&#xff0c;在讀應用數據過程中&#xff0c;終端不檢查&#xff1b; (PBOC2.0第五部分中規定)芯片中持卡人姓名 5F20與持卡人姓名擴展9F0B只能使用一個&#xff0c;另一個必須不…

BindingException: Parameter 'XXX' not found. Available parameters are [collection, list]

應業務需求&#xff0c;需要使用到MQ進行數據上傳和下發。傳遞格式為JSON,服務那邊下發JSON數組&#xff0c;接收端將JSON數組轉換成List集合&#xff0c;調用Mybatis-plus批量添加saveBatch()。提示字段未找到... org.apache.ibatis.exceptions.PersistenceException: ### Er…

JDK 8 新特性 之 default關鍵字

前言 Jdk1.8之前的接口中只聲明方法&#xff0c;方法具體實現應在子類中進行。Jdk1.8打破了這樣的用法&#xff1a;接口中可以實現具體的方法體&#xff0c;只需要加上關鍵字static或者default修飾即可。 default關鍵字 public interface UserService {//自定義方法void getUse…

headroom.js插件使用方法

1.什么是headroom.js&#xff1f; headroom是用純Javascript寫的插件&#xff0c;用來隱藏和展示頁面元素&#xff0c;從而為頁面留下更多空間。比如使用headroom能使導航欄當頁面下滾時消失&#xff0c;當頁面上滾時候又出現。&#xff08;查看效果&#xff09; 2.工作原理 通…

JDK 8 新特性 之 方法引用

概述 方法引用&#xff1a;當要傳遞給Lambda體的操作&#xff0c;已經有實現的方法了&#xff0c;就可以使用方法引用方法引用&#xff1a;在Lambda的基礎上進一步的簡化。換句話說&#xff0c;方法引用就是Lambda表達式&#xff0c;也就是函數式接口的一個實例&#xff0c;通過…

項目記錄:springmvc forward redirect 問題

RequestMapping("/redirect")public String redirect(RedirectAttributes redirectAttributes){redirectAttributes.addFlashAttribute("test", "testdata"); //專供此種情況下使用。return "redirect:read";} 注意&#xff1a;此種情…