docker 相關(guān)部分
windows 系統(tǒng)
安裝/升級Docker客戶端
對于Windows 10專業(yè)版以下的用戶,推薦使用Docker Toolbox
Windows安裝文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
對于Windows 10專業(yè)版以上的用戶 推薦使用Docker for Windows
Windows安裝文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/
配置鏡像加速器
針對安裝了Docker Toolbox的用戶,您可以參考以下配置步驟:
創(chuàng)建一臺安裝有Docker環(huán)境的Linux虛擬機(jī),指定機(jī)器名稱為default,同時配置Docker加速器地址。
docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d virtualbox default
查看機(jī)器的環(huán)境配置,并配置到本地,并通過Docker客戶端訪問Docker服務(wù)。
docker-machine env default
eval "$(docker-machine env default)"
docker info
針對安裝了Docker for Windows的用戶,您可以參考以下配置步驟:
在系統(tǒng)右下角托盤圖標(biāo)內(nèi)右鍵菜單選擇 Settings,打開配置窗口后左側(cè)導(dǎo)航菜單選擇 Docker Daemon。編輯窗口內(nèi)的JSON串,填寫下方加速器地址:
{
"registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}

編輯完成后點(diǎn)擊 Apply 保存按鈕,等待Docker重啟并應(yīng)用配置的鏡像加速器。注意Docker for Windows 和 Docker Toolbox互不兼容,如果同時安裝兩者的話,需要使用hyperv的參數(shù)啟動。
docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d hyperv default
Docker for Windows 有兩種運(yùn)行模式,一種運(yùn)行Windows相關(guān)容器,一種運(yùn)行傳統(tǒng)的Linux容器。同一時間只能選擇一種模式運(yùn)行。
配置遠(yuǎn)程訪問
打開docker的設(shè)置界面,找到General,在里面找到Expose daemon on tcp://localhost:2375 without TLS選項(xiàng),打上勾,即可進(jìn)行本地或遠(yuǎn)程API調(diào)用。

linux 系統(tǒng)
安裝/升級Docker客戶端
更新apt軟件包索引。
sudo apt-get update
安裝最新版本的Docker CE,或者轉(zhuǎn)到下一步安裝特定版本:
sudo apt-get install docker-ce
配置鏡像加速器
您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json
在文件中加入以下內(nèi)容即可:
{
"registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}
重新啟動
sudo systemctl daemon-reload
sudo systemctl restart docker
配置遠(yuǎn)程訪問
編輯docker服務(wù)配置文件
sudo vim /lib/systemd/system/docker.service
找到如下配置
ExecStart=/usr/bin/dockerd
修改為
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

重啟docker網(wǎng)絡(luò)
sudo systemctl daemon-reload
重啟docker服務(wù)
sudo systemctl restart docker
測試
curl http://localhost:2375/verion

鏡像加速地址,可以是阿里云的,這里以阿里云為例:

IntelliJ IDEA 相關(guān)
配置idea連接docker服務(wù)
安裝idea的docker插件
在setting中安裝docker插件

等待安裝完成重啟idea
配置連接
重啟完成后,我們打開settings可以看到docker

點(diǎn)擊+,添加一個連接。

我們通過tcp的方式連接到linux或者windows的docker服務(wù)。信息配置好后,idea會自動檢測。然后會輸出connection successful。
然后再工具欄選擇docker的窗口,點(diǎn)擊運(yùn)行

接下來我們在idea上面操作docker

項(xiàng)目相關(guān)
首先新建一個簡單的springboot項(xiàng)目
在項(xiàng)目的pom.xml文件中加入以下代碼:
<!--復(fù)制jar包到指定目錄-->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>gen-webadmin</id>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="docker" file="target/${project.artifactId}-${project.version}.${project.packaging}" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

在項(xiàng)目根目錄下建立一個docker文件夾,在docker文件夾下新建一個Dockerfile文件,寫入一下內(nèi)容:
FROM java:8u111
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","/app.jar"]
# Ubuntu 時區(qū)
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后配置docker啟動項(xiàng)
選擇編輯:

添加一個啟動項(xiàng):

填寫docker相關(guān)的參數(shù):

在執(zhí)行docker鏡像之前需要把項(xiàng)目進(jìn)行打包,所以在最下面的操作欄中加入maven打包相關(guān)的命令:
添加一個maven任務(wù):

添加maven打包命令:

maven打包分為了幾步:
第一步是清除上次編譯或者打包的文件

第二步是對項(xiàng)目進(jìn)行編譯以及打成jar包

第三步則是把打包好的jar文件移動到指定的docker文件夾,這樣我們的docker對制作鏡像時才能找到我們的jar文件,否則則會在制作過程中報(bào)錯。

正常情況:
Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
---> Using cache
---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
---> a7d47f6bf6ec
Step 4/6 : EXPOSE 80
---> Running in 7b57f4915a64
Removing intermediate container 7b57f4915a64
---> 8a893ebb3052
Step 5/6 : ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--Dspring.config.location=application.yml"]
---> Running in 26ae8f5e5310
Removing intermediate container 26ae8f5e5310
---> 28cc02929af7
Step 6/6 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
---> Running in c0a1b980f7ca
Removing intermediate container c0a1b980f7ca
---> 22034793c303
Successfully built 22034793c303
Successfully tagged signin:latest
Creating container...
Container Id: 0cefcdae23b548d1cdc6865b31f4f4c841de3bed1e6667e64b6583be0b00fd22
Container name: 'signin'
Attaching to container 'signin'...
Starting container 'signin'
'signin Dockerfile: docker/Dockerfile' has been deployed successfully.
異常情況:
Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
---> Using cache
---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: no source files were specified]
Failed to deploy 'signin Dockerfile: docker/Dockerfile': ADD failed: no source files were specified
docker啟動完成

我們?nèi)?code>linux上面查看一下:
docker ps -a
