使用IDEA的Docker插件快速實現Docker鏡像構建和部署

開發環境

  1. 開發環境操做系統:Windows 10
  2. IntelliJ IDEA: 2019.2.4 (Ultimate Edition)
  3. Docker服務所在環境:Ubuntu 18.04.4 Server
  4. Docker:19.03.8(Community)
  5. Windows版Docker Compose:1.25.4

1. Docker開啓遠程訪問

參照這篇文章Docker開放遠程安全訪問(開啓2376端口和CA認證)java

2. 安裝IDEA的Docker插件

在File --> Settings --> Plugins 在搜索框中輸入Docker,搜索並點擊安裝。安裝完成後重啓IDEA。redis

image.png

3. IDEA中創建和Docker的鏈接

在File–> Settings–>Build,Execution,Deployment中找到Docker
新建一個Docker實例,鏈接成功後底部會顯示Connection successful。spring

image.png

設置完成後,回到IDEA主界面,能夠看到下面多出來一個Docker窗口或者在Services窗口中出現Docker。選中並鏈接Docker,鏈接上後顯示Containers和Images就是咱們如今Docker中已經有的容器和鏡像。docker

image.png

4. 使用Dockerfile構建鏡像

image.png

在項目的根目錄下建立Dockerfile文件,內容以下數據庫

FROM java:openjdk-8-jdk-alpine
VOLUME /tmp
ADD target/*.jar app.jar

#設置alpine系統時區
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone

EXPOSE 8081
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

在Run/Debug Configurations中添加一個新配置,選擇Docker->Dockerfile,輸入配置名、容器名、端口綁定等。segmentfault

image.png

image.png

在配置啓動項中找到Before launch:Activate tool window,在這裏新增一個Run Maven Gold緩存

image.png

在Command line中添加命令 clean package 這麼作的目的是能夠在代碼修改以後點擊運行時自動打包並構建Docker鏡像,若是不配置的話,修改後的代碼並不會被打包到Docker鏡像中。安全

點擊運行,咱們會發現項目已經啓動成功了,在右側還能夠查看日誌等信息,很是方便。app

image.png

5. 使用Docker Compose構建鏡像

若是咱們的項目須要鏈接數據庫或者緩存,那麼能夠使用Docker Compose把項目和數據庫同時構建。dom

在項目根目錄下建立docker-compose.yml文件,內容以下:

image.png

version: '3'
services:
  hello-spring-cloud-alibaba-nacos-provider:
    restart: always
    build: .
    image: hello-spring-cloud-alibaba-nacos-provider
    container_name: hello-spring-cloud-alibaba-nacos-provider
    ports:
      - "8081:8081"
  redis:
    restart: always
    image: redis
    container_name: redis
    volumes:
      - ./redis/data/:/data/

在Run/Debug Configurations中添加一個新配置,選擇Docker->Docker-compose,輸入配置名稱並選擇剛纔建立的docker-compose.yml文件,一樣在Before launch中新增一個Run Maven Gold,命令爲clean package

image.png

點擊運行

image.png

運行成功,這裏出現了新的Docker Compose容器

image.png

相關文章
相關標籤/搜索