Docker極簡教程【初識】
開頭安利一個Java方向的學習群:歡迎加入 Java知音三千人的社群:696209224
Docker 是一個開源的應用容器引擎,基於 Go 語言] 並遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。Docker 使用客戶端-伺服器 (C/S) 架構模式,使用遠端API來管理和建立Docker容器。
Docker有免費的CE社群版和收費的EE企業版,本文安裝的是CE版本。
1. Docker安裝
1.1 檢查
Docker 要求 CentOS 系統的核心版本高於 3.10 ,可以通過 uname -r 命令檢視你當前的核心版本。
如果CentOS版本是7以上並且為64位,那是完全沒用問題的。
1.2 安裝
安裝一些必要系統工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
新增軟體源資訊:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 快取:
sudo yum makecache fast
安裝 Docker-ce:
sudo yum -y install docker-ce
啟動 Docker 後臺服務
sudo systemctl start docker
測試執行 hello-world
docker run hello-world
由於本地沒有hello-world這個映象,所以會下載一個hello-world的映象,並在容器內執行。
1.3 映象加速
例如在使用Maven時我們一般會配置阿里雲國內映象加速,在使用Docker時也是如此。我使用的是網易的映象地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%dockerconfigdaemon.json(Windows) 來配置 Daemon。
請在該配置檔案中加入(沒有該檔案的話,請先建一個):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
1.4 解除安裝Docker
執行以下命令來刪除 Docker CE:
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
2. 實戰Nginx
2.1 查詢Docker Hub上的 nginx 映象
docker search nginx
2.2 拉取官方映象
docker pull nginx
2.3 拉取成功檢視本地映象
docker images nginx
2.4 啟動Nginx伺服器
docker run -p 8080:80 -d nginx
-
-p 8080:80:將本機8080埠對映到Nginx容器的80埠
-
-d:後臺啟動
2.5 檢視Docker當前執行
docker ps
2.6 訪問測試
2.7 拷貝本地檔案到容器內
把當前目錄下的index.html檔案拷貝到容器內,替換Nginx的預設首頁。
docker cp index.html dbfc48660aeb://usr/share/nginx/html
dbfc48660aeb是容器內Nginx執行的ID,/usr/share/nginx/html是容器內Nginx的首頁預設路徑。
再次訪問瀏覽器,可以看到首頁已經更換為我們自定義的檔案內容。
2.8 停止Docker容器
docker stop ID
重新整理瀏覽器,訪問提示無法連線。
2.9 儲存容器內更改
再次執行Nginx容器,訪問首頁,發現更改的首頁又復原了。如圖:
這是因為在更改後沒有提交儲存導致的。也就是需要下面這句命令:
docker commit -m 'fun' aaef9a68525a nginx-fun
-
-a ' author':作者名
-
-m 'fun':是說明文字;
-
aaef9a68525a:容器ID,通過ps命令獲取;
-
nginx-fun:新生成的image映象名稱;
然後檢視現有映象:
發現新生成了一個nginx-fun映象。
2.10 刪除容器
雖然有些容器已經停止了,但是還存有資訊,可以通過docker ps -a
檢視,再通過docker rm [CONTAINER ID]
刪除。
3. 命令小結
以上為本文的全部內容!
關注後端技術精選,每天推送優質好文