一、Docker for Windows 基礎知識 1. 下載docker for windows。 "docker for windows" 2. 下載安裝完後設置"Shared Drives"。 3. 因為國內訪問docker story太慢。需要設置docker加速器: "Daemon" Re ...
一、Docker for Windows 基礎知識
下載docker for windows。
docker for windows- 下載安裝完後設置"Shared Drives"。
- 因為國內訪問docker story太慢。需要設置docker加速器: "Daemon"->Registery
DaoCloud - 安裝docker for windows後docker會預設在(Windows10)”Hyper-V“中新建一個”MobyLinuxVM “。
通過
docker version
查看當前版本信息。
Client:
Version: 17.06.0-ce
API version: 1.30
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:30:30 2017
OS/Arch: windows/amd64
Server:
Version: 17.06.0-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:51:55 2017
OS/Arch: linux/amd64
Experimental: true
二、Docker 常用命令
docker build
生成一個鏡像。docker run
在一個新的容器中運行鏡像。docker images
列出所有鏡像。docker ps
列出正在運行的容器。docker ps -a
列出所有容器(包括未運行的)。docker stop
停止運行一個容器。docker start
啟動一個容器。docker restart
重新啟動一個容器docker rm
移除一個容器。但不會移除該容器中的鏡像。docker rmi
移除鏡像。docker pull
拉取一個鏡像。docker inspect
查看信息.- 所有命令都可以通過
--help
查看具體用法。
三、iSlideTools.Localserver 部署到docker方法
1、發佈項目到當前工程目錄下的"publish"文件夾。【註意:把data.db資料庫從輸出目錄拷貝過來】。
2、 在當前工程目錄下新建Dockerfile文件。
FROM microsoft/aspnetcore:1.1
WORKDIR /app
EXPOSE 80
COPY publish .
ENTRYPOINT ["dotnet", "iSlideTools.LocalServer.dll"]
FROM
:告訴docker基於microsoft/aspnetcore:1.1
構建你的鏡像。
WORKDIR
:設置/app為工作目錄。
EXPOSE
:暴露80埠。
COPY
:從"publish"拷貝文件或目錄到容器中的目錄。
ENTRYPOINT
:容器啟動時執行的命令。
3、通過Dockerfile文件生成鏡像
docker build . -t islidetools.localserver:1.0
".":指Dockerfile文件在當前目錄下。
"-t":指定鏡像名稱。【註意:名稱要小寫,大寫要報錯...】。
4、運行鏡像
docker run -d -p 8888:80 -v "$pwd\publish:/app" --name islidetoolslocalserver islidetools.localserver:1.0
"-d":容器在後臺運行。
"-p":映射埠。
"-v":掛載目錄。將當前目錄下的"publish"目錄掛載到容器的"app"目錄。
"--name":指定容器名稱。
最後是鏡像名稱。":"後面是tag。如果不指定預設是"latest"。
檢查是否掛載上目錄執行:docker inspect 容器名稱
。查看"Mounts"節點是否有數據。
我當前掛載的目錄如下:
"Mounts": [
{
"Type": "bind",
"Source": "/C/Users/liujf/Documents/Dev/Repos/islide-tools-public/src/iSlideTools.LocalServer/iSlideTools.LocalServer/publish",
"Destination": "/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
docker ps
:查看當前正在運行的容器。
5、維護
當修改bug後,重新發佈網站到"publish"文件夾。執行docker restart 容器名稱
就能看見更新後的內容。
四、配置PowerShell
使用Tab
自動完成
- 以管理員身份運行PowserShell
- Set the script execution policy to allow downloaded scripts signed by trusted publishers to run on your computer. To do so, type this at the PowerShell prompt.
Set-ExecutionPolicy RemoteSigned
- To install the posh-docker PowerShell module for auto-completion of Docker commands, type:
Install-Module posh-docker
- After installation to enable autocompletion for the current PowerShell only, type:
Import-Module posh-docker
- To make tab completion persistent across all PowerShell sessions, add the command to a $PROFILE by typing these commands at the PowerShell prompt.
if (-Not (Test-Path $PROFILE)) {
New-Item $PROFILE –Type File –Force
}
Add-Content $PROFILE "`nImport-Module posh-docker"
This creates a $PROFILE if one does not already exist, and adds this line into the file:
Import-Module posh-docker
To check that the file was properly created, or simply edit it manually, type this in PowerShell:
Notepad $PROFILE