1. 程式人生 > >Docker系列(3-應用篇) linux 安裝 Docker

Docker系列(3-應用篇) linux 安裝 Docker

一、軟版本

作業系統:Centos 7.0

docker的官網 : https://www.docker.com/community-edition#/download

映象中心:https://hub.docker.com/

高速下載地址:http://get.daocloud.io/

 

二、開始安裝:

http://www.daocloud.io/

由於國內的源比較卡,所以我們推薦使用daocloud方式,註冊安裝即可:

[[email protected] ~]# curl -sSL https://get.daocloud.io/docker | sh

#為了快速拉取映象,還要daocloud.因為在國內通常拉取Docker hub的映象都是被牆的。

 [[email protected] ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://681a96df.m.daocloud.io

 

響應:

docker version >= 1.12

{"registry-mirrors": ["http://681a96df.m.daocloud.io"],

    "live-restore": true

}

Success.

You need to restart docker to take effect: sudo systemctl restart docker

##實際上是相關配置寫入了,

[[email protected] ~]# cat /etc/docker/daemon.json

{"registry-mirrors": ["http://681a96df.m.daocloud.io"],

    "live-restore": true

}

##指定去這個倉庫下,因為預設是去官方的Docker hub下載映象的。

然後重啟docker:

[[email protected] ~]# systemctl restart docker

 

修改配置檔案

[[email protected] ~]# vim /lib/systemd/system/docker.service

#原:ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

改為:ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375  ##tcp

修改後要重載入docker

[[email protected] ~]# systemctl daemon-reload

[[email protected] ~]# systemctl restart docker

2、我們也可以看一下到底docker 讀取的是哪個配置檔案,不同版本可能不一樣:

 [[email protected] ~]# systemctl status docker

● docker.service - Docker Application Container Engine

   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)

   Active: active (running) since Sat 2017-03-11 16:43:51 CST; 1min 11s ago

     Docs: https://docs.docker.com

###這裡我們知道centos讀取的是/usr/lib/systemd/system/docker.service這個檔案。啟動的相關引數,後面再慢慢開始

 

Tcp:

Vim /usr/lib/systemd/system/docker.service

 

[[email protected] ~]# docker -H 192.168.63.200:2375 images

如果跨機訪問不到,需要關閉防火牆

徹底關閉防火牆:

[[email protected] ~]# sudo systemctl status firewalld.service

[[email protected] ~]# sudo systemctl stop firewalld.service          

[[email protected] ~]# sudo systemctl disable firewalld.service

三、執行docker版的hello world

要執行docker版本的hello world,那麼自然需要先獲取映象,注意到docker官方給我們提供了一個映象中心:https://hub.docker.com/,一般公司內部也會給我們提供一個公司專用的映象中心。

 

docker pull : 從映象倉庫中拉取或者更新指定映象,映象除了名稱之外,還有一個tag的概念,如果不提供tag,就是表示latest。

docker images : 列出本地映象。

 

 

 

不可不知的docker網路

在實際開發中,要知道我們的服務,一般是在某個埠進行監聽,一直在後臺執行的,那麼就涉及到宿主機/宿主機中的容器它們之間的網路問題了。

docker的網路型別分3種:bridge,host,none。(這裡和vmware的網路設定部分非常相似)

bridge,就是橋接模式,docker容器會有自己獨立的network namespace,也就是會有虛擬的ip和port,那麼如何通過宿主機來訪問容器內部的埠呢?這裡就涉及到一個技術:埠對映了。

host,不會分配獨立的network namespace,而是和宿主機進行共用網路。

none,不使用網路,docker容器不會和外界進行通訊。