下載安裝 Docker 也有一個月了。中間看過幾次也沒有深入的了解研究。就只是拉取了兩個鏡像簡單的看了看。
昨天因一個項目中需要用到 Redis ,因為是 Windows 系統,看了下安裝包比較老了有3年沒有維護,這就想到了在 Docker 中部署一個 Redis 用。
一、安裝 Docker
1、Windows 下安裝 Docker 有兩種方式:“Dockeer for Windows Installer.exe” 和“DockerToolbox.exe”。
這兩個安裝后操作的有些不一樣。我是安裝 “Dockeer for Windows Installer.exe”,在安裝的過程中加把 Docker 加到了環境變量中,安裝完成后可以直接在 cmd 中用命令行操作。
2、Windows 下需要開啟 Hyper-V 功能,並且開啟虛擬化,出現問題可以網上搜索下解決方式。
3、安裝完成后,要先注冊 DockerID ,登錄后進行配置:
在狀態欄右鍵 Docker 圖標 =》 Settings ,打開設置界面
需要配置的主要有兩個:
a、掛載磁盤(Shared Drives),因為在運行鏡像實例時有些會掛載本地文件,這個地方沒有配置會報錯;
b、鏡像加速(Deamon),由於總所周知的原因,配置為國內的鏡像地址;
二、基本命令行
代碼中符號說明:
[Pro]:中括號中的參數,必要
{Pro}:大括號中的參數,可選
1、查找鏡像:
docker search [Name]
2、拉取鏡像:
docker pull [Name]{:3.2}
冒號后面的是版本號,不加版本號拉取最新的
3、查看本地鏡像:
docker images {Name}
可以指定查看的鏡像名,否則查看全部的
4、查看本地實例:
docker ps {-a}
-a:查看所有的,暫停的也包含在內;否則只顯示運行中的;
5、創建容器實例:
docker run -d -p 8888:8888 {--name test1} [Name]{:3.2} {--requirepass "123456"} {-v /etc/localtime:/etc/localtime:ro} {--restart always}
-d:標識在后台運行,不阻命令行界面,可以繼續輸入其他的命令,是 detach 縮寫
-p:標識端口,左邊的是實際系統的端口,右側是容器中的端口
--name:實例的名稱;把鏡像比作類,實例就是這個類實例化的對象,這個名稱就是實例對象名稱,不設置會默認隨機一個
--requirepass:設置密碼
-v:設置映射時區
--restart:重啟機制:在docker run時通過--restart 設置守護機制,有四種模式
no:不自動重新啟動容器。(默認)
on-failure :由於一個錯誤退出,它表現為退出狀態不等於0,自動啟動容器
unless-stopped :除非被顯式停止 stop、kill 否則docker服務停止或自動重啟,自動啟動容器
always:如果容器停止,總是重新啟動容器。(這是官方解釋,我測試了如果手動kill容器 無法自動重啟,應該也屬於正常 如果手動都不能讓他停止 也許我們會更煩惱怎么停止它~~~~)
對於上面的模式 我們生產常用的只有 always
6、進入容器實例:
docker exec -it [containerID] bash
containerID:容器ID
這個只是進入容器實例,例如redis,要用客戶端操作:在打出:redis-cli -c -p 6379,這個是登錄了,可以操作了
7、停止容器實例:
docker stop [Name/ID]
docker kill [Name/ID]
stop 會給一定時間給容器自己保存狀態,kill直接關閉
Name:創建時的名稱
8、刪除容器實例:
docker rm [Name]
9、刪除鏡像:
docker rmi [ImageID]
10、啟動容器實例:
docker start [Name/ID] {-i} {-t}
-i:交互模式啟動;
-t:附加進程方式啟動;
11、重啟容器實例:
docker restart [Name/ID] {-t=60}
-t:關閉容器的時限,超時未關閉直接kill,默認10s,這個時間就是保存容器狀態的時間;
12、查看鏡像詳情:
docker inspect [Name]
三、運行 Redis、Nginx 實例
1、redis
比較簡單,先拉取鏡像,運行鏡像實例。
docker pull redis docker run -d -p 6379:6379 --name redis01 redis
默認拉取最新的版本鏡像,運行實例以后台進程方式,名稱為 redis01
2、nginx
a、先拉取鏡像
docker pull nginx
b、在本地的放置 nginx 文件的文件夾下建立:conf、logs、www三個文件夾,從容器實例拷貝配置文件到本地(沒有實例的話可以先運行一個一般實例,從這個拷貝)
docker cp nginx01:/etc/nginx/nginx.conf D:\Docker\nginx\conf
c、運行實例
docker run -d -p 8086:80 --name nginx01 -v D:\Docker\nginx\www:/usr/share/nginx/html -v D:\Docker\nginx\conf/nginx.c onf:/etc/nginx/nginx.conf -v D:\Docker\nginx\logs:/var/log/nginx nginx
這里掛載本地文件到運行的容器
d、要發布的文件拷貝到 www 文件夾下即可
現在打開就可以看到發布的站點
加速鏡像地址:
網易加速器鏈接: http://hub-mirror.c.163.com
ustc加速器鏈接:https://docker.mirrors.ustc.edu.cn
Daocloud加速:http://f1361db2.m.daocloud.io http://69292621.m.daocloud.io
別的如阿里雲,需要注冊后才可以用。