溫馨提示×

溫馨提示×

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

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

docker 安裝文檔

發(fā)布時間:2020-06-13 11:30:02 來源:網(wǎng)絡(luò) 閱讀:211 作者:laihuadongcto 欄目:系統(tǒng)運維

1. docker環(huán)境安裝

系統(tǒng)要求: CentOS 7

通過yum安裝docker, 首先配置yum鏡像源, 使用阿里云鏡像.

curl?-o?/etc/yum.repos.d/docker-ce.repo?https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

然后安裝并設(shè)置開機啟動

yum?install?docker-ce
systemctl?enable?docker

在啟動docker服務(wù)前, 配置docker存儲目錄(鏡像/容器), 將其存儲到容量比較大的分區(qū). 這里假設(shè)為/opt.

mkdir?/etc/docker
touch?/etc/docker/daemon.json

寫入/etc/docker/daemon.json的內(nèi)容.

{????"data-root":?"/opt/docker",????"registry-mirrors":?[????????"https://registry.docker-cn.com",?
????????"https://docker.mirrors.ustc.edu.cn"
????]
}

docker-ce將graph字段修改為data-root

其中data-root字段為docker所有的鏡像, 容器存放的位置,?/opt/docker目錄不必預(yù)先存在, 啟動docker服務(wù)時會自動創(chuàng)建.

registry-mirrors字段為國內(nèi)鏡像源加速列表(在火樹的使用場景中, 由于沒有網(wǎng)絡(luò)連接, 其實沒什么用).

最后, 啟動docker服務(wù).

systemctl?start?docker

1.1 拷貝快捷命令

bash_docker.sh? ?文件中的內(nèi)容追加到/root/.bashrc文件尾部, 然后source?/root/.bashrc使之生效.

該文件中包含了1個常用命令docker-enter.

docker-enter 容器名/容器id: 進入目標(biāo)容器, 將得到一個bash命令行

$?docker?ps
CONTAINER?ID????????IMAGE??????????????????????????????????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS??????????????????????NAMES
c98790552123????????reg01.sky-mobi.com/huoshu/nginx:1.0.0??????????"/bin/sh?-c?'servi..."???2?hours?ago?????????Up?2?hours??????????0.0.0.0:80-81->80-81/tcp???quizzical_shannon
$?docker-enter?c98790552123
[root@c98790552123?~]#

1.2 自定義網(wǎng)絡(luò)

默認(rèn)每臺宿主機上啟動的docker容器都在一個小型局域網(wǎng)內(nèi), 類似于虛擬機, 所有的流量通過宿主機做nat轉(zhuǎn)發(fā), 這也是一般路由器的工作方式.

但是這種方式類似于dhcp, 每次啟動容器所獲取的IP并不確定. 為了保證各工程容器地址固定, 我們需要創(chuàng)建自定義的docker局域網(wǎng), 并在啟動容器的時候指定該容器的IP.

注意: 這個操作的目的是保持工程容器的地址固定, 比如, 寫在工程配置文件中的redis與oracle地址, nginx配置文件中后端工程監(jiān)聽的IP與端口地址等, 不方便頻繁變動的情況.

不過目前oracle在一臺單獨的服務(wù)器上, 所以并不需要創(chuàng)建的這個網(wǎng)絡(luò). 只在redis與工程容器所在的服務(wù)器上執(zhí)行如下操作即可. 如下

$?docker?network?create?--subnet=172.21.0.0/16?huoshu

在當(dāng)前宿主機上創(chuàng)建一個小型局域網(wǎng)subnet, 不與外界連通.?huoshu即為該網(wǎng)段名稱, 啟動一個docker容器時可以顯示指定--net huoshu從而自動獲取一個該網(wǎng)段內(nèi)的IP.

約定redis運行在172.21.0.3這個地址, 工程配置文件不再需要再作修改.

自定義網(wǎng)絡(luò)環(huán)境下, 容器與其宿主機本身的端口無法連通(但默認(rèn)網(wǎng)絡(luò)可以), 我們還需要添加一句如下代碼, 使得容器內(nèi)可以直接連接宿主機的端口, 無論通過172.21.0.1還是宿主機的物理IP, 都行.

$?iptables?-I?INPUT_direct?-s?172.21.0.0/16?-j?ACCEPT

2. docker的基本操作

2.1 關(guān)于save和load - 本地存儲/拷貝鏡像的方法

一般鏡像的傳播都是通過pull/push的方式, 通過鏡像倉庫完成轉(zhuǎn)發(fā). 鑒于火樹此次的應(yīng)用場景, 可以將鏡像保存在本地, 然后拷貝于其他擁有docker環(huán)境的服務(wù)器上, 同樣可以繼續(xù)使用.

當(dāng)前系統(tǒng)中的鏡像列表可以通過docker?images命令查看, 結(jié)果如下.

$?docker?imagesREPOSITORY?????????????????????????TAG??????IMAGE?ID????????????CREATED?????????????SIZE
reg01.sky-mobi.com/huoshu/redis????1.0.0????7a0e963024cf????????6?hours?ago?????????370MB
reg01.sky-mobi.com/huoshu/nginx????1.0.0????99e4c2104361????????7?days?ago??????????453MB
reg01.sky-mobi.com/huoshu/base?????1.0.0????62925dab3a8e????????7?days?ago??????????330MB

使用如下命令可以將nginx鏡像打包成tar文件.

$?docker?save?-o?nginx-1.0.0.tar?reg01.sky-mobi.com/huoshu/nginx:1.0.0$?lsnginx-1.0.0.tar

nginx-1.0.0.tar文件拷貝到另一臺擁有docker環(huán)境的服務(wù)器上, 加載它.

$?docker?load?<?./nginx-1.0.0.tar?c97485ea5599:?Loading?layer?[==================================================>]????125MB/125MB
834571917b0e:?Loading?layer?[==================================================>]??3.584kB/3.584kB
Loaded?image:?reg01.sky-mobi.com/huoshu/nginx:1.0.0$?docker?imagesREPOSITORY????????????????????????????????TAG?????????????????IMAGE?ID????????????CREATED?????????????SIZE
reg01.sky-mobi.com/huoshu/nginx???????????1.0.0???????????????99e4c2104361????????7?days?ago??????????453MB

可以看到**load之后會保持鏡像名不變, 所以工程升級時, 打的鏡像版本號也要不同, 不然會發(fā)生沖突**.

2.2 oracle地址的指定

約定在工程中oracle的地址統(tǒng)一寫作jdbc.oracle.addr這個域名, 然后在有用到oracle的容器啟動時, 在命令行中指定ORACLE_ADDR這個環(huán)境變量為實際oracle所在服務(wù)器地址(通過docker的-e選項可以實現(xiàn)).

在容器啟動過程中, 會將ORACLE_ADDR變量指定的地址與jdbc.oracle.addr寫入容器本身的/etc/hosts文件, 即可實現(xiàn)該域名與oracle服務(wù)器地址的解析.


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI