docker 從最開始的只知道有「docker」這麼個東西,到如今用起來大概有一個來月的時間了,就簡單記錄下爲何要用 docker , 還有 docker 的一些經常使用命令, 還有使用 docker 過程當中遇到的一些問題。html
最開始想到要使用 docker 是由於公司的系統部署了幾套不一樣的環境,每套環境都須要安裝 nginx , redis , mysql , mq 等一些軟件。在這麼作了一段時間後就發現工做效率是很底下的,而且是重複的勞動,在這個過程當中出錯的機率也很高。固然你們幹活的時候都是想讓本身輕鬆,愉快一些。若是老是作這樣低效,重複性的工做無疑是一種災難。這個時候就想到用 docker 來解決這個問題。docker 是一種虛擬化技術,一種容器技術。 docker 從 2013 , 2014 左右發佈。 咱們公司如今纔開始使用起來 ... 不得不說這個和國際先進水平比較的話確實落後不少了。mysql
1. 從遠程鏡像(image)倉庫拉取(pull)鏡像指令:nginx
docker pull hub.tencentyun.com/hepengdockerhub2019/hepeng-centos:latestredis
hub.tencentyun.com : 是我指定的鏡像倉庫的地址sql
hepengdockerhub2019: 是個人帳戶名稱,能夠理解爲一個命名空間docker
hepeng-centos : 是我要拉取的鏡像名稱centos
latest:是我要拉取的鏡像的標籤 (Tag)bash
推送鏡像到遠程鏡像倉庫: docker push hub.tencentyun.com/hepengdockerhub2019/hepeng-centos:latest網絡
將容器打包成鏡像: docker commit -m "鏡像的一些描述信息" -a "做者" [容器ID] [新的鏡像的名稱]spa
2. 運行相關指令:
基本模式使用方式: docker run [鏡像名稱] 或者 [鏡像ID]
在後臺運行: docker run -d [鏡像名稱] 或者 [鏡像ID]
和宿主機進行端口映射: docker run -p 宿主機端口:容器端口 -p 宿主機端口:容器端口 。例如 : docker run -p 80:80 6379:6379 [鏡像名稱] 或者 [鏡像ID]
和宿主機進行文件夾映射: docker run -v 宿主機文件夾路徑:容器文件夾路徑 , 例如 : docker run -v /usr/local/test/:/usr/local/test [鏡像名稱] 或者 [鏡像ID]
指定容器運行的網絡模式: docker run --net=host (指定容器的網絡模式爲 host ) ,docker 的網絡模式有: host , bridge , none , container 。docker 網絡模式參考博客(1) ,docker 網絡模式參考博客(2)
運行後進入控制檯模式: docker -it [鏡像名稱] 或者 [鏡像ID] bin/bash ,
-i, --interactive=false
-i, --interactive=false Keep STDIN open even if not attached
保持標準輸入,常同-t一塊兒使用來申請一個控制檯進行數據交互。
進入已經運行容器的控制檯: docker exec -it 容器ID bin/bash
啓動中止運行的容器 : docker start 容器ID