1. 程式人生 > >使用docker快速搭建執行環境

使用docker快速搭建執行環境

最近在搭建虛擬機器上的執行環境,最開始是按照傳統方法一個一個安裝軟體,一大堆軟體裝下確實是挺費時間的。現在容器技術非常的火,於是就去看了一下docker,完全能夠滿足我的需求,省時省力, 何樂而不為?

什麼是docker?

簡單的說,Docker是一個基於程序容器(Processcontainer)的輕量級VM解決方案。大概的示意圖如下(左邊是傳統VM,右邊是docker):
VM與Docker的對比
傳統的虛擬機器是虛擬出硬體,然後在虛擬的硬體上安裝作業系統及各種上層應用。Docker則是共享作業系統,在作業系統上層虛擬出獨立的容器,每個容器是一個獨立的沙箱,擁有自己的檔案系統及執行時。

幾個docker常用的命令

查詢docker映象

$ docker search XXX

下載docker映象

docker pull XXX

下載後預設是放到了:/var/lib/docker

檢視已下載的docker映象

docker images

執行docker容器

docker run XXX

檢視正在執行的docker容器

docker ps

停止正在執行的容器

docker stop XXX

刪除容器

docker rm -f XXX

注意事項

容器的資料持久化

docker執行期間產生的資料是不會在寫映象裡面的,重新用此映象啟動新的容器就會初始化映象,會加一個全新的讀寫入層來儲存資料。因此,若使用docker來執行mysql等資料儲存類應用時,你需要使用 資料卷(Data volume)

來幫助你完成資料持久化。

你可以在docker run命令中使用 -v 標識來給容器內新增一個數據卷,例如:

docker run -v /data/var/mysql/:/var/lib/mysql mysql

此命令將本地目錄/data/var/mysql/掛載到了mysql的docker容器中,對應容器中的目錄/var/lib/mysql

容器的互動式操作

docker run -t -i ubuntu:14.04 /bin/bash

-t 在新容器內指定一個偽終端或終端,-i 允許我們對容器內的 (STDIN) 進行互動。最後的/bin/bash 是指定在容器中啟動bash shell

容器作為守護程序

docker run -d mysql

-d 標識告訴 docker 在容器內以後臺程序模式執行,預設返回一個字串(docker id),接著你可以使用 docker ps 命令來檢視已經啟動的docker容器

容器的埠對映

docker run -p 5506:3306 mysql

-p 標識會繫結本地主機上的指定埠,與容器內的埠建立對映關係。例如:上麥的例子將本機的5506與容器內mysql的3306建立對映,你可以使用 本機IP:5506 連線容器內的msyql