天天看點

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

目錄

環境準備

系統版本

開啟虛拟化(VT)

啟用Hyper-V功能

下載下傳 Docker-for-windows 

檢查是否成功

配置Docker

切換國内鏡像

存儲位置

Docker基礎指令

使用示例

docker 部署nginx

使用docker Compose部署jar啟動項目

編寫docker-compose.yml檔案

啟動運作

運作情況

docker run指令運作以及參數詳解

環境準備

系統版本

64位Windows 10 Pro,專業版、企業版和教育版(1607紀念更新,版本14393或更高版本)上

如果版本不滿足請安裝Docker Toolbox,自行網上百度,參考連結:http://blog.csdn.net/tina_ttl/article/details/51372604

開啟虛拟化(VT)

進入任務管理器(ctrl+alt+delete),點選性能->cpu ,檢視虛拟化是否已啟用,如果虛拟化是已禁用,那麼你需要重新開機電腦進入bios開啟虛拟化(自行百度自己電腦開啟虛拟化方法)

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

啟用Hyper-V功能

進入電腦的控制台->程式->啟用或關閉Windows功能->把Hyper-v勾上,啟用後電腦會重新開機,後面就可以下載下傳并安裝Docker for Windows

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

下載下傳 Docker-for-windows 

推薦下穩定版

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

下載下傳完成後,直接點選安裝就可以,安裝成功後右下角工作列會有一個小鲸魚的圖示

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

檢查是否成功

檢查Docker,Compose的版本

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

檢查版本資訊,并確定docker指令正常工作

docker ps
           
Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解
docker version
           
Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解
docker info
           
Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

配置Docker

切換國内鏡像

右鍵點選鲸魚圖示,選擇Setting菜單,打開docker配置頁面,選擇Docker Engine,将内容替換成下面的:

{ 
    "registry-mirrors": 
            [ "https://dockerhub.azk8s.cn",
              "https://reg-mirror.qiniu.com", 
              "https://registry.docker-cn.com", 
              "http://hub-mirror.c.163.com", 
              "https://docker.mirrors.ustc.edu.cn" ], 
    "insecure-registries": [], 
    "debug": true, 
    "experimental": false 
}
           

點選右下角“Apply& Restart” 按鈕應用并重新開機

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

國内鏡像替換完成了

存儲位置

修改預設Docker鏡像和虛拟機位置,C槽空間大的可以忽略此步驟

在C槽下找到如下目錄

C:\使用者\計算機名\AppData\Local

會找到一個Docker檔案夾

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

打開任務管理器,結束所有跟docker有關的程序

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解
Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

結束程序後,将Docker檔案夾剪切到其他目錄中

打開CMD,目錄切換到“C:\使用者\計算機名\AppData\Local”

然後使用軟鍊的方式将檔案夾連接配接到“C:\使用者\計算機名\AppData\Local”下

mklink /j Docker F:\DEV_FILE\docker\Docker
           

成功後可以看到,檔案夾下多了快捷方式的小箭頭

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

Docker基礎指令

容器(container)相關基礎指令

docker run ubuntu:18.04 /bin/bash #使用對應image建立container,同時進入對應bash(加上-i指定僞終端 -t允許互動)

docker exec [:containerId] /bin/bash #進入對應容器的bash

docker pull training/webapp #載入image

docker run -d -P training/webapp python app.py #運作指定container

docker run -d -p [:主機端口(預設32768)]:[:指定映射(flask預設 5000)] training/webapp python app.py #外部主機指定

docker ps #檢視已運作的container

docker ps -a #檢視所有container

docker ps -l #檢視最後一次運作的container

docker port [:id/:name] #檢視對應id/name container的端口映射

docker logs -f [:id/name] #檢視container内部标準輸出

docker top [:id/:name] #檢視container内部運作程序

docker inspect [:id/:name] #傳回container内部狀态

docker stop [:id/:name] #停止container運作

docker stop $(docker ps -a -q) #停止所有container運作

docker ps -q #列出所有container的id

docker start [:id/:name] #重新開機container,注意和run的差別。

docker rm [:id/:name] #删除container。删除container時,container必須是停止狀态,否則會報錯

docker rm $(docker ps -a -q) #删除所有container

鏡像(image)相關基礎指令

docker images #列出所有images

docker pull [:鏡像名:版本号] #拉取鏡像

docker search [:鏡像名] #搜取鏡像,例如httpd

docker run [:鏡像名] #直接使用鏡像

docker run -i -t ubuntu:18.04 /bin/bash #進入一個bash Docker參數 -i -t 的作用

docker commit -m="[:message]" -a="[:author]" [:dockerId] [package/dockerName:version] #送出容器副本

docker rmi [:imageId] #删除鏡像

docker rmi $(docker images -q) #删除所有鏡像

docker build 原理

docker inspect [:containerId/:containerName] #檢視dockerName對應資訊

docker inspect -f '{{.Id}}' [:containerId/:containerName] #從資訊JSON中取出Id

docker inspect $(docker inspect -f '{{.Id}}' containerName) #發現了docker可以像這樣組合查詢。

docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop # 一個可用的hadoop容器鏡

例如: docker run -i -t --name Master -h Master -p 50070:50070 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop /bin/bash

docker常用功能插件

  • Docker Dockerfile (通過腳本檔案快速建構鏡像)
  • Docker Compose (定義和運作多容器 Docker 應用程式的工具)

建議自行百度學習

使用示例

docker 部署nginx

1.拉取鏡像

在拉取鏡像之前我可以搜尋一下鏡像是否存在

$ docker search nginx

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

這裡我們拉取官方的最新版本的鏡像:

$ docker pull nginx:latest

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

檢視本地鏡像

$ docker images

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

在上圖中可以看到我們已經安裝了最新版本(latest)的 nginx 鏡像。

2.運作容器

$ docker run --name nginx-test -p 8081:80 -d nginx

參數說明:

  • --name nginx-test:容器名稱。
  • -p 8081:80: 端口進行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d: 設定容器在在背景運作。
  • nginx: 使用nginx鏡像
Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

3.通路測試

最後我們可以通過浏覽器可以直接通路 8080 端口的 nginx 服務:

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

其他配置,例如進入容器中調整nginx配置檔案或者使用本地配置檔案映射容器中檔案,提高docker使用的便捷性,可自行百度

使用docker Compose部署jar啟動項目

windows版docker自帶docker compose 是以不用單獨安裝

編寫docker-compose.yml檔案

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

啟動運作

$ docker-compose up -d

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

運作情況

以下使用docker for desktop檢視,指令檢視運作的方式,自行百度

右鍵小鲸魚圖示,選擇Dashboard菜單

這時可以看到我們之前運作過的容器狀态

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

通過右側按鈕我們可以進行操作

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

按鈕依次是“在浏覽器打開”、“進入容器控制台”、“停止容器運作”、“重新開機容器”、“删除容器”

點選容器,可以打開檢視容器日志、運作參數、運作狀态

Win10安裝docker環境環境準備配置DockerDocker基礎指令使用示例使用docker Compose部署jar啟動項目docker run指令運作以及參數詳解

docker run指令運作以及參數詳解

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d, --detach=false 指定容器運作于前台還是背景,預設為false

-i, --interactive=false 打開STDIN,用于控制台互動

-t, --tty=false 配置設定tty裝置,該可以支援終端登入,預設為false

-u, --user="" 指定容器的使用者

-a, --attach=[] 登入容器(必須是以docker run -d啟動的容器)

-w, --workdir="" 指定容器的工作目錄

-c, --cpu-shares=0 設定容器CPU權重,在CPU共享場景使用

-e, --env=[] 指定環境變量,容器中可以使用該環境變量

-m, --memory="" 指定容器的記憶體上限

-P, --publish-all=false 指定容器暴露的端口

-p, --publish=[] 指定容器暴露的端口

-h, --hostname="" 指定容器的主機名

-v, --volume=[] 給容器挂載存儲卷,挂載到容器的某個目錄

--volumes-from=[] 給容器挂載其他容器上的卷,挂載到容器的某個目錄

--cap-add=[] 添權重限,權限清單詳見:http://linux.die.net/man/7/capabilities

--cap-drop=[] 删除權限,權限清單詳見:http://linux.die.net/man/7/capabilities

--cidfile="" 運作容器後,在指定檔案中寫入容器PID值,一種典型的監控系統用法

--cpuset="" 設定容器可以使用哪些CPU,此參數可以用來容器獨占CPU

--device=[] 添加主機裝置給容器,相當于裝置直通

--dns=[] 指定容器的dns伺服器

--dns-search=[] 指定容器的dns搜尋域名,寫入到容器的/etc/resolv.conf檔案

--entrypoint="" 覆寫image的入口點

--env-file=[] 指定環境變量檔案,檔案格式為每行一個環境變量

--expose=[] 指定容器暴露的端口,即修改鏡像的暴露端口

--link=[] 指定容器間的關聯,使用其他容器的IP、env等資訊

--lxc-conf=[] 指定容器的配置檔案,隻有在指定--exec-driver=lxc時使用

--name="" 指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字

--net="bridge" 容器網絡設定:

bridge 使用docker daemon指定的網橋

host //容器使用主機的網絡

container:NAME_or_ID >//使用其他容器的網路,共享IP和PORT等網絡資源

none 容器使用自己的網絡(類似--net=bridge),但是不進行配置

--privileged=false 指定容器是否為特權容器,特權容器擁有所有的capabilities

--restart="no" 指定容器停止後的重新開機政策:

no:容器退出時不重新開機

on-failure:容器故障退出(傳回值非零)時重新開機

always:容器退出時總是重新開機

--rm=false 指定容器停止後自動删除容器(不支援以docker run -d啟動的容器)

--sig-proxy=true 設定由代理接受并處理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理