Linux下安裝docker

來源:互聯網
上載者:User

標籤:linux   虛擬機器   網路   

今天,daimajia推薦使用docker,其實一直都聽過docker,但沒用過,今天參考幾篇文檔把docker搞定了。果然起的速度比一般虛擬機器快

這個總結主要是整理工作,大部分內容都在文章最後的文檔裡已經有說明。


我的電腦是ubuntu14.04 安裝的話用包源進行安裝

$ sudo apt-get install apt-transport-https$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"$ sudo apt-get update$ sudo apt-get install lxc-docker

然後根據文章末尾給定的文章搞的。



我一開始下的fedora21,問題好多,比如yum源的問題,命令缺少的問題,搞到最後還是換成了ubuntu。ubuntu命令比較齊全,route,ifconfig等一些基本命令都已經有了。

接下來碰到一個問題:沒有iptables,我安裝完之後報錯:

[email protected]:/# iptables -nLiptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)Perhaps iptables or your kernel needs to be upgraded.

解決方案就是在啟動docker的時候添加下面這個參數:

--privileged=true
docker run --privileged=true -t -i ubuntu_2 /bin/bash

因為有些功能被禁用了。。。一開始我還以為需要重新編譯核心,看來不需要。



下面這個是docker的網路拓撲圖:



多台虛擬機器都是串連在docker0這個虛擬交換器上,再通過port(這個名詞好像應該叫interface)串連在宿主機上。這個拓撲不複雜。登入兩台虛報機相互ping一下,檢查是否連通。實踐證明一切OK。

再檢查是否可以連通外網,事實證明也可以,看來docker已經幫我們設定好資料包NAT轉寄了。

其實docker的拓撲可以修改,添加橋接器,劃分網路等一些二層的功能,但不具備三層添加路由器的功能。

比如,重新建立橋接器並刪除原橋接器:

除了預設的 docker0 橋接器,使用者也可以指定橋接器來串連各個容器。
在啟動 Docker 服務的時候,使用 -b BRIDGE或--bridge=BRIDGE 來指定使用的橋接器。
如果服務已經運行,那需要先停止服務,並刪除舊的橋接器。

$ sudo service docker stop$ sudo ip link set dev docker0 down$ sudo brctl delbr docker0

然後建立一個橋接器 bridge0。

$ sudo brctl addbr bridge0$ sudo ip addr add 192.168.5.1/24 dev bridge0$ sudo ip link set dev bridge0 up

查看確認橋接器建立並啟動。

$ ip addr show bridge04: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group defaultlink/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ffinet 192.168.5.1/24 scope global bridge0valid_lft forever preferred_lft forever
配置 Docker 服務,預設橋接到建立的橋接器上。
$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker$ sudo service docker start

啟動 Docker 服務。 建立一個容器,可以看到它已經橋接到了 bridge0 上。
可以繼續用 brctl show 命令查看橋接的資訊。另外,在容器中可以使用 ip addr 和 ip route 命令來查看 IP 位址配置和路由資訊。



有一個比較噁心的就是,每次用完虛擬機器如果更新過資源,記得退出時候把虛擬機器commit一下,否則虛擬機器不會儲存下來。

命令:

$ sudo docker commit -m "Changed some resource" -a "myUsrname" 0b2616b0e5a8 newVirt
其中各個參數含義如下:

Create a new image from a container's changes  -a, --author=""     Author (e.g., "John Hannibal Smith <[email protected]>")  -m, --message=""    Commit message  -p, --pause=true    Pause container during commit
0b2616b0e5a8為剛退出container ID,可以通過docker ps -l -q擷取

這些命令和git有些類似。




還有一個小問題就是每次輸入都要sudo許可權,神煩,可以通過添加使用者組來解決:

# 添加docker使用者組$ sudo groupadd docker# 把自己加到docker使用者組中$ sudo gpasswd -a myusername docker# 重啟docker後台服務$ sudo service docker restart# 登出,然後再登陸$ exit


再還有別的問題可以參考文檔。以下為本文參考文檔:

http://yeasy.gitbooks.io/docker_practice/content/image/create.htmlhttps://docker.cn/p/docker-15-tips/http://ikarishinjieva.github.io/tachikoma-blog/post/2014-07-10-docker-some-error/




Linux下安裝docker

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.