《LINUX入門:Ubuntu 16.04安裝部署Docker指南》要點:
本文介紹了LINUX入門:Ubuntu 16.04安裝部署Docker指南,希望對您有用。如果有疑問,可以聯系我們。
本篇主要翻譯一下官方指導Ubuntu下安裝Docker指南,方便查閱,官方指導網址?.這篇文章主要指導你去安裝使用Docker-managed發布包及其安裝機制.使用這些包確保你獲得最近的docker官方發布版本.如果你需要安裝使用Ubuntu-managed包,查閱Ubuntu文檔.
Ubuntu Xenial 16.04[LTS] Ubuntu Trusty 14.04[LTS] Ubuntu Precise 12.04[LTS]
?不管你是Ubuntu的哪個版本,Docker需要64的操作系統.此外你的kernel內核至少要在3.10版本之上.最近的3.10小版本或者最新的維護版本也是可以接受的.kernel3.10版本之前的系統缺少一些特性來運行docker容器.這些舊版本有些已知的bugs會導致數據丟失并且在一定條件下會頻繁的故障.檢查你當前的kernel版本,打開終端,輸入
?uname -r
注意:如果你之前使用APT安裝過docker,為了新版本的docker倉庫,確保你更新了APT源.
?Docker的APT倉庫包含1.7.1以及更高的版本.通過設置APT使用來自docker倉庫的包.
?1)登陸機器,用戶必須使用sudo或者root權限.
?2)打開終端
?3)更新包信息,確保APT能使用https方式工作,并且CA證書已安裝了
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
出現這個問題可能是有另一個程序正在運行,導致資源被鎖不可用.而導致資源被鎖的原因可能是上次運行安裝或更新沒有正常完成,解決方法就是刪掉.
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
?4)添加一個新的GPG密鑰
? ?sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
?5)找到合適你的Ubuntu操作系統的鍵,這個鍵決定APT將搜索哪個包.可能的鍵有:
Ubuntu version Repository
Precise 12.04? deb https://apt.dockerproject.org/repoubuntu-precise main
Trusty 14.04 ?deb https://apt.dockerproject.org/repoubuntu-trusty main
Xenial 16.04 ?deb https://apt.dockerproject.org/repoubuntu-xenial main
注意:docker沒有為所有的架構提供包,Binary artifacts are built nightly,你可以從https://master.dockerproject.org. 處下載下來.在一個多架構的系統上安裝docker,為鍵添加一個[arch=]條款.更多細節參考Debian Multiarch維基百科.
?6)運行下面的命令,用占位符<REPO> 為你的操作系統替換鍵.
echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
比如你是16.04將上面命令的<REPO>
替換成deb https://apt.dockerproject.org/repoubuntu-xenial main 執行那條命令,就在那個文件夾下創建了一個docker.list文件,里面的內容就是
deb https://apt.dockerproject.org/repoubuntu-xenial main
?7)更新APT包索引
sudo apt-get update
?8)校驗APT是從一個正確的倉庫拉取安裝包.
當運行下面命令的時候,這個鍵會返回你目前可以安裝的docker版本,每個鍵都包括URL:https://apt.dockerproject.org/repo/.下面是截取的部分輸出內容.
命令:apt-cache policy docker-engine
現在當你運行apt-get upgrade的時候,APT就會從新的倉庫拉安裝包.
?Ubuntu Xenial 16.04[LTS] Ubuntu Trusty 14.04[LTS]
?這兩個版本記得安裝linux-iamge-extra-*的kernel包.這個包允許你使用aufs存儲驅動.
?sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
?Ubuntu Precise 12.04[LTS]
?對于這個版本,你需要3.13以上的kernel版本,你必須升級.下面表格指導你需要哪些包:
?你可以執行以下命令:
?sudo apt-get install linux-image-generic-lts-trusty
?sudo reboot
1)登陸系統,用你的賬號使用sudo全權限
2)更新APT包索引:sudo apt-get update
3)安裝docker:sudo apt-get install docker-engine
4)開啟docker后天進程:sudo service docker start
5)校驗docker是否安裝成功:sudo docker run hello-world
這個命令會下載一個測試鏡像,并且運行在一個容器中.當容器運行時,他會打印一些信息,并且退出.
docker后臺進程是綁定的Unix的socket而不是TCP端口.默認情況下,Unix的socket屬于用戶root,其它用戶要使用要通過sudo命令.由于這個原因,docker daemon通常使用root用戶運行.
為了避免使用sudo當你使用docker命令的時候,創建一個Unix組名為docker并且添加用戶.當docker daemon啟動,它會分配Unix socket讀寫權限給所屬的docker組.
注意:docker組不等價于用戶root,如果想要知道的更多關于平安影響,查看docker daemon attack surface.
sudo groupadd docker
sudo usermod -aG docker $USER
退出再重進,確保該用戶有正確的權限.
校驗生效,通過運行docker命令不帶sudo:docker run hello-world,如果失敗會有以下類似的信息:Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?確保DOCKER_HOST環境變量沒有設置.如果有取消它.
? 當用戶運行docker時,他們可能在使用一個鏡像時看見下面的信息:
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
為了阻止這些信息,在你的系統中啟用內存和交換區計算.這個操作會導致即便docker沒有使用也有內存開銷以及性能下降.內存開銷大概是總內存的1%.性能降低了大約10%.
修改/etc/default/grub文件.vi或者vim命令都行,設置GRUB_CMDLINE_LINUX的值,如下:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1".保存文件并關閉.sudo update-grub更新啟動項.reboot重啟你的系統.
當你運行docker時,在同一臺主機上使用UFW(Uncomplicated Firewall)?,你需要額外的配置.docker使用橋接方式來管理容器的網絡.默認情況下,UFW廢棄所有的轉發流量.因此,docker運行時UFW可以使用,你必須設置合適UFW的轉發規則.
UFW默認配置規則拒絕了所有傳入流量.如果你想要從另一個主機到達你的容器需要允許連接docker的端口.docker的默認端口是2376如果TLS啟用,如果沒有啟動則是2375,會話是不加密的.默認情況,docker運行在沒有TLS啟動的情況下.
為了配置UFW并且允許進入的連接docker端口:
檢查UFW是否安裝并啟用:sudo ufw status
打開/etc/default/ufw文件并編輯:sudo nano /etc/default/ufw
設置DEFAULT_FORWARD_POLICY:DEFAULT_FORWARD_POLICY="ACCEPT"
保存退出并重啟使用新的設置:sudo ufw reload
允許所有的連接到docker端口:sudo ufw allow 2375/tcp
系統運行桌面的Ubuntu或者Ubuntu衍生產品通常使用127.0.0.1作為默認的nameserver文件/etc/resolv.conf文件中.NetworkManager也通常設置dnsmasq nameserver 127.0.0.1在/etc/resolv.conf.
當在桌面機器運行容器,使用這些配置時,docker的使用者會看見這些警告:
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]
這個警告發生是因為docker容器不能使用本地DNS命名服務器.此外docker默認使用一個額外的nameserver.
為了避免這個警告,你可以在使用docker容器的時候指定一個DNS服務器.或者你可以禁用dnsmasq在NetworkManager中.但是,禁用會導致DNS協議在某些網絡中變慢.
下面的說明描述了如安在Ubuntu14.0或以下版本配置docker守護進程.Ubuntu15.04及之上的使用systemd用于啟動項和服務管理.指導通過使用systemd來配置和控制一個守護進程.
設置指定的DNS服務:
打開/etc/default/docker文件并編輯:sudo nano /etc/default/docker,添加配置項:DOCKER_OPTS="--dns 8.8.8.8".將8.8.8.8用一個本地的DNS服務例如192.168.1.1替換.你也可以配置多個DNS服務器.用空格隔開它們,如:--dns 8.8.8.8 --dns 192.168.1.1.警告:當你在筆記本連接了不同網絡的情況時做這些操作,確保選擇一個公用的DNS服務器.保存文件并退出,重啟docker守護進程:sudo service docker restart.
或者另一個選擇,禁用dnsmasq在網絡管理器中,這可能導致你的網速變慢:
打開/etc/NetworkManager/NetworkManager.conf文件,編輯它:sudo nano /etc/NetworkManager/NetworkManager.conf.找到行dns=dnsmasq,注釋掉.保存關閉文件,重啟網絡管理器和docker.sudo restart network-manager ?sudo restart docker.
Ubuntu15.04之后使用systemd作為引導啟動和服務管理,14.10及以下版本是upstart.15.04以上,需要配置docker守護進程boot啟動,運行命令:sudo systemctl enable docker
14.10及以下版本安裝辦法會自動配置upstart來啟動docke daemon在boot.
升級:sudo apt-get upgrade docker-engine
卸載:sudo apt-get purge docker-engine
卸載及依賴:sudo apt-get autoremove --purge docker-engine
上述命令不會卸載images,containers,volumes或者用戶自己創建的配置文件.你如果想刪除這些東西,執行下面的命令:
rm -rf /var/lib/docker
安裝最簡單的辦法是:sudo apt-get update sudo apt-get install docker
《LINUX入門:Ubuntu 16.04安裝部署Docker指南》是否對您有啟發,歡迎查看更多與《LINUX入門:Ubuntu 16.04安裝部署Docker指南》相關教程,學精學透。維易PHP學院為您提供精彩教程。