文章目錄
idea使用docker插件部署項目到docker
docker所在的操作系統是CentOS7,ip是192.168.0.103
1. 安裝docker
1.1 檢查內核版本,必須是3.10及以上
uname -r
1.2 升級軟件包及內核
yum update
1.3 安裝docker
yum install docker
1.4 啓動docker
systemctl start docker
1.5 查看docker版本
docker -v
2. docker安裝java:8鏡像
docker pull java:8
3. docker開啓遠程訪問
3.1 修改docker.service,添加監聽端口 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
vim /lib/systemd/system/docker.service
3.2 重啓docker
#重新加載配置文件
systemctl daemon-reload
#重啓docker
systemctl restart docker
3.3 查看進程 netstat -tulp
3.4 curl看是否生效
curl http://127.0.0.1:2375/info
4. idea安裝docker插件
idea默認已安裝docker插件,只需要配置即可。
在File->Settings下配置如圖:
5. 搭建springboot測試項目
5.1 修改pom.xml文件,添加如下
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--將插件綁定在某個phase執行-->
<executions>
<execution>
<id>build-image</id>
<!--將插件綁定在package這個phase上。也就是說,
用戶只需執行mvn package ,就會自動執行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的鏡像名,這裏是我們的項目名-->
<imageName>${project.artifactId}</imageName>
<!--指定標籤 這裏指定的是鏡像的版本,我們默認版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我們項目中Dockerfile文件的路徑-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定遠程docker 地址-->
<dockerHost>http://192.168.0.103:2375</dockerHost>
<!-- 這裏是複製 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar包所在的路徑 此處配置的即對應項目中target目錄-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,這裏對應的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
5.2 在resources下新建Dockerfile文件
FROM java:8
#掛載目錄
VOLUME /tmp
ADD *.jar app.jar
#暴露端口號
EXPOSE 8083
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
5.3 項目結構
6. maven打包生成docker鏡像
6.1 maven進行package
生成的鏡像如下
6.2 在鏡像上右鍵選擇 Create Container,進行配置
6.3 啓動容器後效果
7. 訪問測試的項目
http://192.168.0.103:8083/hello
8. linux防火牆操作
8.1 查看防火牆
service firewalld status
8.2 關閉防火牆
service firewalld stop
9. docker操作補充
9.1 docker開機自啓動
systemctl enable docker
9.2 停止docker
systemctl stop docker
9.3 查看鏡像
查看所有本地鏡像
docker images
9.4 拉取鏡像
docker pull 鏡像名:tag
:tag是可選的,tag表示標籤,多爲軟件的版本,默認是latest
9.5 刪除鏡像
刪除指定的本地鏡像
docker rmi image-id
9.6 查看容器
- 查看運行的容器
docker ps
- 查看所有容器(包括運行的和未運行的)
docker ps -a
9.7 啓動容器
docker start container-name/container-id
9.8 停止容器
docker stop container-name/container-id
9.9 刪除容器
docker rm container-id
9.10 容器日誌
docker logs container-name/container-id
9.11 運行容器
docker run --name container-name -d image-name
–name:自定義容器名;-d:後臺運行;image-name:指定鏡像模板
端口映射
:-p 8088:8080
主機端口(映射到)容器內部端的口