Docker 系列(三) Docker 基礎

2021-10-06 19:13:31 字數 2537 閱讀 8652

dockerfile 是乙個文字檔案,其內包含了一條條的指令(instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。

舉乙個簡單的定製例子,我們建立乙個檔案 dockerfile,寫入如下

from nginx

run echo

''> /usr/share/nginx/html/index.html

這樣我們就完成了對乙個nginx映象的定製,這樣我麼啟動定製的映象,訪問該映象的 nginx 服務應該得到hello, docker!的輸出。

使用dockerfile 定製映象

docker 網路是乙個非常重要的概念,我們深入學習 docker 的話會發現以後的 ci/cd、集群部署等操作都離不開 docker 之間的網路通訊,所以說學好 docker的網路基礎和原理是非常重要的。

當 docker 啟動時,會自動在主機上建立乙個docker0虛擬網橋,實際上是 linux 的乙個 bridge,可以理解為乙個軟體交換機。它會在掛載到它的網口之間進行**。

同時,docker 隨機分配乙個本地未占用的私有網段(在 rfc1918 中定義)中的乙個位址給docker0介面。比如典型的172.17.42.1,掩碼為255.255.0.0。此後啟動的容器內的網口也會自動分配乙個同一網段(172.17.0.0/16)的位址。

docker 網路原理與 docker 的高階網路配置

[root@undi]

# docker run -p 8080:80 nginx

#將宿主機的 8080 埠繫結到容器的 80 埠上,這樣訪問宿主機的 8080 埠時,就會**到容器的 80 埠上

[root@undi]

# docker run -p 127.0.0.1::80 nginx

#將宿主機的 127.0.0.1:隨機乙個埠 繫結到容器的80埠上

使用docker ps -a列出所有容器,在這裡能看到容器所繫結的埠。

使用docker post 容器名可以檢視該容器繫結的 ip。

使用docker inspect 容器名可以看到所有變數。

[root@undi]

# docker port bloomfilter

6379/tcp -> 0.0.0.0:6379

第一種方式是使用--link引數,但是現在並不推薦使用這種方式進行連線,他的原理是在容器內的host檔案中加入對映關係,不僅移植性差,反過來還不行了,牆裂推薦大家加入自定義網路來鏈結多個容器,就像我們玩虛擬機器時候的虛擬網絡卡一樣。

新建網路

下面命令新建乙個 新的 docker 網路

$ docker network create -d bridge my-net
-d引數指定 docker 網路型別,有bridgeoverlay。其中overlay網路型別用於 swarm mode,在這裡可以忽略它。

連線容器

執行乙個容器並連線到新建的my-net網路

$ docker run -it --rm --name busybox1 --network my-net busybox sh

開啟新的終端,再執行乙個容器並加入到my-net網路

$ docker run -it --rm --name busybox2 --network my-net busybox sh

此時我們有兩個容器busybox1busybox2,隨便進入乙個容器,ping 另乙個容器測試成功,反過來測試也是沒問題的

# ping busybox2

ping busybox2 (172.19.0.3): 56 data bytes

64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms

64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms

基於halo 搭建的個人部落格:

不太想用但是流量很 hi 多的 csdn

docker學習系列(三)docker使用

緊接著之前的部落格,這一篇主要寫如何使用docker 系列1 docker簡介 系列2 docker安裝 docker的官方提供了乙個官方的映象市場可以搜尋一些映象檔案,比如centos,jdk等 當然我們一般都不會使用這種方式來獲取一把都是通過命令列首先用 docker search keywor...

Docker教程系列三 Docker容器操作

l 檢視正在執行容器 docker ps l 檢視所有的容器 啟動過的歷史容器 docker ps a l 檢視最後一次執行的容器 docker ps l l 檢視停止的容器 docker ps f status exited l 建立容器常用的引數說明 l 建立容器命令 docker run l ...

Docker系列 docker安裝

docker的安裝和使用有一些前提條件,主要體現在體系架構和核心的支援上。對於體系架構,除了docker一開始就支援的x86 64,其他體系架構的支援則一直在不斷地完善和推進中。docker分為ce和ee兩大版本。ce即社群版 免費,支援週期7個月 ee即企業版,強調安全,付費使用,支援週期24個月...