❶ ubuntu怎樣升級docker版本
運行私有docker registry,就好比為docker鏡像運行私有git倉庫。在Ubuntu1404上搭建私有docker registry-Linux的步驟: 第一步——安裝必要的軟體 1、在docker registry伺服器上,應當創建一個擁有sudo許可權的用戶(如果可以,在客戶機上也如此)ubuntu怎樣升級docker版本
❷ 如何在線升級Docker
首先說一點,docker stop了,但是容器並不一定「沒了」。
我理解的所謂的「沒了」,就是指容器的進程不存在的。
所有的容器進程,都是docker daemon的子進程。當docker daemon直接掛了,容器的主進程(就是由Entrypoint或者CMD生成的那個進程),會有兩種情況:
1. 直接消失。這種情況常見於CMD是/bin/bash的情形。直接消失的原因據我猜測是因為這是個有pty的進程,需要跟父進程(docker daemon)保持一定的聯系。父進程掛了,這個子進程就直接沒了。
2. 被1號進程託管(父進程變成了1號進程)。這種情況應該常見於CMD是sshd -D或者sleep 99999d的情況。
但是無論哪種情況,當docker daemon再次start時候,會直接去檢查容器進程是不是running。如果running,那麼清理容器遺留進程。這也就是為什麼啟動起來docker daemon,所有的容器都是關閉的原因了。
docker為什麼要在啟動時候關閉這些進程呢?他們running不好么?
根據我對docker源碼的理解,docker不放心其他進程來管理。他一定要親自管理這些容器,他是所有容器的父進程。這樣有很多好處。最大的好處就是實時監控,一旦容器掛了,他立即可以知道,並重啟(如果容器設置了restart=always的話)。
-----------------------------華麗的分割線-----------------------------------------
上面的只是鋪墊,現在說正題:
我們的意願是良好的。希望能夠docker在線升級。我看來一個可能的解決方法就是,在docker daemon start的時候,去檢查容器是不是running,如果running,那麼清理容器遺留進程,接著再重新start容器。以保證仍然作為容器的父進程進行管理。當然,這就要求給docker新增這么一段代碼以實現該功能。
❸ docker 容器 可以模擬多台伺服器測試嗎
DockerMachine是一個工具,使您可以輕松地從個人計算機遠程配置和管理多個Docker主機。這樣的伺服器通常被稱為Docker化主機,並且當然可以用於運行Docker容器。雖然DockerMachine可以安裝在本地或遠程系統上,但最常見的方法是將其安裝在本地計算機(本機安裝或虛擬機)上,並使用它來部署Docker化遠程伺服器。雖然DockerMachine可以安裝在大多數Linux發行版以及MacOSX和Windows上,但在本教程中,我們將在運行Ubuntu16.04的本地機器上安裝DockerMachine,並使用它來配置DockerizedDigitalOceanDroplet。
❹ 如何調用docker swarm service的API來創建及更新服務
與 Docker Compose 一樣, Docker Machine 也是旨在幫助開發人員快速使用Docker的工具。具體地說,就是Machine允許Windows和OS X用戶在諸如 Amazon AWS, Google Container Engine, Azure, DigitalOcean等公有雲上遠程創建Docker主機。Docker客戶端安裝在本地,你就可以通過它遠程訪問Docker的API,能達到好像Docker引擎就運行本地一樣的體驗。Machine需要安裝在客戶機本地,是用來創建遠程Docker主機的單獨二進制文件。本地Docker客戶端甚至可以是運行在VirtualBox虛擬機上的Docker。它的源代碼託管在 Github 。
在這篇文章中,我先簡單介紹Docker Machine,再講述怎麼用它創建Swarm Docker集群。一旦你從單機測試過度到多機器分布式部署,這工具相當有用。Docker Compose用來啟動你在Swarm集群中的應用,這個我會在以後的文章中詳細敘述。
首先,你的機器上應該安裝Docker Machine, 官方的文檔 是最好的參考工具。第一步,我將介紹一個此文檔中高亮的執行命令。
❺ docker部署web服務,怎樣做到不間斷服務的更新
Docker的使用 Docker是一個輕量級的虛擬化解決方案,你可以實現秒級的虛擬機啟動、非常輕量級的虛擬化。個人使用理解看來,它可以實現一個類似於版本管理Git一樣的輕量化的狀態保存。
❻ 如何通過docker容器安裝LNMP伺服器環境
安裝 系統環境
硬體型號: ThinkPad T520
系統版本: ubuntu 14.04
CPU: i7
RAM: 8G
添加軟體源
由於Ubuntu源中的最先版本為0.9無法滿足要求,所以需要使用Docker的官方源
添加密鑰:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80
--recv-keys \
源地址: deb http://get.docker.io/ubuntu docker main
添加源可以通過"軟體和更新->其它軟體->添加"來操作
添加後執行如下命令:
$ sudo apt-get update
$ sudo apt-get install lxc-docker-1.1.1
注: 官方給出的源地址為https連接的,但是總是出現ssl驗證失敗的錯誤,最後改為非
ssl連接之後正常
測試
執行如下命令獲取容器鏡像,創建一個實例並打開一個實例shell
$ sudo docker run -t -i centos:latest /bin/bash
注:第一次運行由於需要下載鏡像可能需要多等一會兒
運行成功後會有一個新的shell提示符
製作鏡像 要求
web容器安裝Nginx+php服務
資料庫容器安裝Mysql服務
web服務和資料庫分離
web服務容器可以訪問資料庫容器
製作nginx+php鏡像
啟動一個容器實例:
$ sudo docker run -t -i centos:latest /bin/bash
安裝nginx與PHP:
Nginx可以使用源碼或rpm包進行安裝,PHP可以使用源碼或yum安裝.具體安裝和配置這里
不進行具體講述.
注:需要把nginx與php-fpm添加到系統服務中並設置開機啟動
我設置的站點根目錄為/opt/web
退出shell並執行如下命令製作鏡像:
$ sudo docker commit -m="web service image nginx+php" -a="username" \
sudo docker ps -lq username/web:v1
這是一個組合命令:
sudo docker commit根據已有實例製作鏡像
sudo docker ps -lq返回最後一個運行的實例id
已有鏡像可以使用sudo docker images 查看
至此創建了第一個鏡像 username/web:v1
製作mysql鏡像
啟動實例:
$ sudo docker run -t -i centos:latest /bin/bash
安裝Mysql.
設置Mysql服務開機啟動:
$ chkconfig mysqld on
啟動mysql.
修改mysql登陸許可權:
mysql> grant all privileges on . to 'root'@'%'
identified by 'dbpasswd';
mysql> flush privileges;
mysql服務默認只能本地連接,製作鏡像的時候需要注意.否則是無法連接到資料庫的.
退出shell並執行如下命令製作mysql容器鏡像:
$ sudo docker commit -m="mysql service image" -a="username" \
sudo docker ps -lq username/mysql:v1
清除不再需要的實例:
$ sudo docker rm sudo docker ps -aq
啟動並關聯實例
web實例依賴與mysql,所以先打開一個mysql實例:
$ sudo docker run -d --name db username/mysql:v1
/sbin/init
-d參數是讓實例以dameon的形式運行. /sbin/init是創建實例後執行的操作,此處為初
始化系統服務,包括運行mysql.
啟動web實例並與資料庫實例進行關聯:
$ sudo docker run -d --name web --link db:db -p 8080:80 -v /path/to/src:/opt/web username/web:v1 /sbin/init
--link參數設置關聯的容器,可以設置多個.關聯之後會自動更新web容器的host,把db
的地址指向到資料庫容器的地址.
-p 參數用來進行ip映射.此處把容器的80埠映射到了本地的8080埠.web服務可是
通過localhost:8080訪問.
-v 參數把數據掛載到容器指定目錄.此處為把站點源碼目錄掛載到容器的站點目錄.
在web容器中訪問資料庫容器的mysql服務可以使用db這個主機地址.
❼ docker的好處,為什麼使用docker來部署伺服器
Docker的使用
Docker是一個輕量級的虛擬化解決方案,你可以實現秒級的虛擬機啟動、非常輕量級的虛擬化。個人使用理解看來,它可以實現一個類似於版本管理Git一樣的輕量化的狀態保存。
Docker有兩個非常重要的概念: 鏡像和容器。
鏡像是呈載容器的實體,所有容器都是運行在鏡像之上。用版本管理的角度來看,鏡像就像是某一個節點,它可以派生出不同的分支,你可以在不同分支上做不同的事情。可以想像成一棵樹,最基本的鏡像是主樹干,主樹干可以分出旁支樹干,而旁支樹干可以分出更細的旁支,而樹幹上可以生長樹枝。
比如,你使用Docker,從官方倉庫下載一個ubuntu鏡像,把它作為最基礎的鏡像。然後在上面運行一個容器,這個容器里下載Nginx,再以這個容器為基礎生成一個新的鏡像,以後這個鏡像生成的容器就都是ubuntu+nginx為基礎。但是你工作環境可能需要你使用Apache來工作,你也想有一個ubuntu+apache為基礎的鏡像,於是你可以使用最基礎的ubuntu鏡像運行一個容器,在裡面下載安裝Apache,然後以這個容器為基礎,保存一個ubuntu+apache的鏡像,以後在這個鏡像基礎上運行的所有容器都擁有了一個apache環境。