使用docker快速搭建運行環境

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


什麼是docker?

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

segment上的大神 吳yh堅 對容器有個比較透徹的說明,感興趣的可以讀一下下文:
https://segmentfault.com/a/1190000006245007


幾個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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章