Ubuntu
Ubuntu
Docker支援以下的ubuntu版本
- Ubuntu Trusty 14.04 (LTS) (64-bit)
- Ubuntu Precise 12.04 (LTS) (64-bit)
- Ubuntu Raring 13.04 and Saucy 13.10 (64 bit)
如何你打算使用UFW防火牆,請閱讀 docker和UFW
Ubuntu Trusty 14.04 (LTS) (64-bit)
Ubuntu配置了3.13.0 linux核心和將安裝Docker 0.9.1的docker.io
包,當然這些都取決於你的Ubuntu映象源。
提示:Ubuntu(和Debain)包含一個特別陳舊的KED3/GNOME2包叫docker,所以我們把這個包叫
docker.io
。
安裝
安裝最新版本的Ubuntu包(可能不是最新的docker版本包):
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
如果你想安裝最新版本的docker
首先,檢查你的APT系統能夠處理https的url:如果你的主機不存在/usr/lib/apt/methods/https檔案,請先安裝apt-transport-https包
[ -e /usr/lib/apt/methods/https ] || {
apt-get update
apt-get install apt-transport-https
}
然後,新增docker映象祕鑰到你的本地祕鑰庫.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
新增Docker映象新增你的apt軟體源,更新和安裝lxc-docker
包。
你可能會受到一個警告資訊,這個包不可信,輸入yes繼續安裝。
$ sudo sh -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
提示: 這還有一個簡單的
curl
指令碼來協助你完成這一工作。
$ curl -s https://get.docker.io/ubuntu/ | sudo sh
來確認它是否正常工作:
$ sudo docker run -i -t ubuntu /bin/bash
上邊的命令會自動下載ubuntu映象,並且會在容器內執行bash
Ubuntu Precise 12.04 (LTS) (64-bit)
依賴條件
Linux kernel 3.8
由於LXC存在的bug問題,docker最好的工作環境是在3.8核心基礎上。但是12.04使用的是3.2核心,所以我們需要升級它。安裝附帶AUFS的核心需要遵循以下步驟。我們需要包含通用的標頭檔案取決於啟用的包,像ZFS和VirtualBox guest additions。如果你的"precise"核心中沒有安裝這些標頭檔案,這時候你可以在"raring"核心跳過這些標頭檔案。如果你不確定的時候包含這些是比較安全的。
# install the backported kernel
$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
# reboot
$ sudo reboot
安裝
警告:這些指令在0.6版本的時候就已經改變了,如果你要從早期版本升級,你需要重新安裝他們。
Docker作為一個Debain包,安裝起來比較簡單,如果你不在美國請選擇映象源,其它映象源的Debain包安裝起來也許會更快(譬如我們使用俄羅斯的映象)。
首先,檢查你的APT系統能夠處理https的url:如果你的主機不存在/usr/lib/apt/methods/https檔案,請先安裝apt-transport-https包
[ -e /usr/lib/apt/methods/https ] || {
apt-get update
apt-get install apt-transport-https
}
然後,新增docker映象祕鑰到你的本地祕鑰庫.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
新增Docker映象新增你的apt軟體源,更新和安裝lxc-docker
包。
你可能會受到一個警告資訊,這個包不可信,輸入yes繼續安裝。
$ sudo sh -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
提示: 這還有一個簡單的
curl
指令碼來協助你完成這一工作。
$ curl -s https://get.docker.io/ubuntu/ | sudo sh
來確認它是否正常工作:
$ sudo docker run -i -t ubuntu /bin/bash
上邊的命令會自動下載ubuntu映象,並且會在容器內執行bash,輸入exit
來退出。
現在!可以檢視使用者指南。
Ubuntu Raring 13.04 and Saucy 13.10 (64 bit)
這些指令可以再Ubuntu 13.04和13.10上使用
依賴條件
可選AUFS檔案系統支援
Ubuntu Raring已經安裝好了3.8核心,所以我們不需要安裝它。然而,不是所有的系統都支援AUFS系統。在版本0.7上AUFS是可選的,它作為一個驅動程式,我們建議使用它。
為了確保安裝AUFS,執行以下命令:
$ sudo apt-get update
$ sudo apt-get install linux-image-extra-`uname -r`
安裝
Docker作為一個Debain包,安裝起來比較簡單
警告:這些指令在0.6版本的時候就已經改變了,如果你要從早期版本升級,你需要重新安裝他們。
首先,新增docker映象祕鑰到你的本地祕鑰庫.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
新增docker映象新增到你的apt軟體源,升級和安裝lxc-docker
包。
$ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker
現在下載ubuntu
映象執行,確認是否正常工作
$ sudo docker run -i -t ubuntu /bin/bash
輸入exit
退出
好!現在你可以去檢視使用者指南了。
不使用root執行
docker
程式一般來說預設用root
使用者執行,從Docker 0.5.2
開始,docker程式繫結unix socket來代替TCP埠。預設情況下使用者root
來管理unix socket,但是你也可以使用sudo
來使用。
從0.5.3版本開始,如果你(你安裝的docker)建立一個叫docker
的unix群組,並且在群組中新增使用者。當程式啟動的時候,docker群組將有docker
程式unix socket的讀/寫使用權。docker程式必須使用root使用者執行,但是當使用docker群組的一個使用者來執行docker客戶端的時候,你不需要在命令前新增sudo
,從docker 0.9.0版本開始你可以使用-G
標記指定使用者組。
警告:docker使用者組(或者用
-G
指定的使用者組)和root等效,
舉例
# Add the docker group if it doesn't already exist.
$ sudo groupadd docker
# Add the connected user "${USER}" to the docker group.
# Change the user name to match your preferred user.
# You may have to logout and log back in again for
# this to take effect.
$ sudo gpasswd -a ${USER} docker
# Restart the Docker daemon.
# If you are in Ubuntu 14.04, use docker.io instead of docker
$ sudo service docker restart
升級
使用apt-get
指令來安裝最新版本的docker
# update your sources list
$ sudo apt-get update
# install the latest
$ sudo apt-get install lxc-docker
記憶體和交換空間
如果你想使用記憶體和交換空間,你必須在命令列中新增如下的核心引數:
cgroup_enable=memory swapaccount=1
系統上使用GRUB(ubuntu預設使用GRUB),你可以編輯/etc/default/grub這個檔案,找到GRUB_CMDLINE_LINUX,像如下
GRUB_CMDLINE_LINUX=""
並且替換成
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
再執行sudo update-grub
並且重啟
這些引數將會使你擺脫如下的警告資訊:
WARNING: Your kernel does not support cgroup swap limit.
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
故障排除
在Linux Mint,cgroup-lite
預設沒有被安裝,在docker正常工作之前,你可以通過如下的方式安裝:
$ sudo apt-get update && sudo apt-get install cgroup-lite
Docker and UFW
docker使用橋接的方式來管理網路,預設情況下,UFW會阻止所有的流量轉發。你需要允許UFW的轉發:
$ sudo nano /etc/default/ufw
# Change:
# DEFAULT_FORWARD_POLICY="DROP"
# to
DEFAULT_FORWARD_POLICY="ACCEPT"
重新載入UFW
$ sudo ufw reload
UFW的預設規則是阻止了所有的流入流量。如果你希望能夠能從另外一臺主機連同你的容器,那麼就應該允許docker的預設埠(預設2375)的所有連線。
$ sudo ufw allow 2375/tcp
docker的本地DNS警告
正在執行Ubuntu或者Ubuntu的衍生系統將使用127.0.0.1作為/etc/resolv.conf的預設域名伺服器。NetworkManager設定dnsmasq使用真實的dns伺服器連線,並且設定 /etc/resolv.conf的域名服務為127.0.0.1。
當你啟動容器的時候,使用者將會看到如下的警告:
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
顯示這個的原因是因為容器不能使用本地的dns伺服器,並且docker使用的是預設的外部域名伺服器。
我們可以為docker程式指定一個DNS伺服器來使其正常工作
$ sudo nano /etc/default/docker
---
# Add:
DOCKER_OPTS="--dns 8.8.8.8"
# 8.8.8.8 could be replaced with a local DNS server, such as 192.168.1.1
# multiple DNS servers can be specified: --dns 8.8.8.8 --dns 192.168.1.1
重啟docker程式
$ sudo restart docker
警告:如果你使用你的要連線不同的網路,請使用一個公共的DNS伺服器。
另外一個解決方案就是禁用NetworkManager的dnsmasq,步驟如下:
$ sudo nano /etc/NetworkManager/NetworkManager.conf
----
# 修改:
dns=dnsmasq
# 變成
#dns=dnsmasq
重啟NetworkManager和docker
$ sudo restart network-manager
$ sudo restart docker
警告:這可能使dns解析速度慢
Mirrors
你應該ping get.docker.io
比較映象的延遲,選擇最好的一個。
Yandex
Yandex是一個俄羅斯的映象源,其中的docker包每六個小時更新一次,用http://mirror.yandex.ru/mirrors/docker/來替代http://get.docker.io/ubuntu,如下:
$ sudo sh -c "echo deb http://mirror.yandex.ru/mirrors/docker/ docker main\
> /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker
相關文章
- 【Ubuntu】Ubuntu 24 配置映象源Ubuntu
- 【Ubuntu】在Ubuntu上安裝微信Ubuntu
- ubuntu 安裝 Microsoft To-Do (unofficial) on UbuntuUbuntuROS
- ubuntu 開啟/關閉ubuntu防火牆Ubuntu防火牆
- ubuntu java .............UbuntuJava
- Ubuntu 配置Ubuntu
- Ubuntu 映象Ubuntu
- swarm on ubuntuSwarmUbuntu
- Ubuntu命令Ubuntu
- Ubuntu baseUbuntu
- 【Ubuntu】Ubuntu常用的更新、清理命令指令碼Ubuntu指令碼
- 【上海站】Ubuntu手機駭客松 - Celebrate UbuntuUbuntu
- ubuntu:舊版本配置apt源(ubuntu 21.10)UbuntuAPT
- Ubuntu 17.04 (Zesty Zapus)/Ubuntu 16.04.2 LTS (Xenial Xerus)Ubuntu
- 在 Ubuntu 14.04 上安裝 Ubuntu Tweak 0.8.8Ubuntu
- Ubuntu Linux:定製Ubuntu安裝CD(轉)UbuntuLinux
- Ubuntu修改hostsUbuntu
- ubuntu 修改源Ubuntu
- enjoy TIM on UbuntuUbuntu
- 優化 Ubuntu優化Ubuntu
- Ubuntu小配置Ubuntu
- ubuntu換源Ubuntu
- ubuntu常用指令Ubuntu
- Ubuntu OpenNTM配置Ubuntu
- Ubuntu命令大全Ubuntu
- 初次使用UbuntuUbuntu
- ubuntu學習Ubuntu
- 常用Ubuntu命令Ubuntu
- Ubuntu簡介Ubuntu
- ubuntu配置HOSTUbuntu
- ubuntu部署mongodbUbuntuMongoDB
- Ubuntu搭建LAMPUbuntuLAMP
- Ubuntu VirtualBoxUbuntu
- Ubuntu小技巧Ubuntu
- ubuntu的使用Ubuntu
- Ubuntu 簡介Ubuntu
- vnc service on ubuntuVNCUbuntu
- Ubuntu命令技巧Ubuntu