1.搭建docker環境
需要linux系統必須是centOS7以上
執行一下命令:
yum install epel-release –y
yum clean all
yum list
2.安裝
yum install docker-io –y
systemctl start docker
3.測試docker是否成功
docker info
出現一下信息證明成功:
········ Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Insecure Registries: 127.0.0.0/8 Registries: docker.io (secure)
4.創建Dockerfile文件內容如下:
FROM java:8
MAINTAINER 70kg 449246146@qq.com
VOLUME /tmp ADD mystory-1.0.0-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
介紹一下:
- FROM :表示使用 Jdk8 環境 為基礎鏡像,如果鏡像不是本地的會從 DockerHub 進行下載
- MAINTAINER :指定維護者的信息
- VOLUME :VOLUME 指向了一個
/tmp
的目錄,由於 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp
作為工作目錄。這個命令的效果是:在宿主機的/var/lib/docker
目錄下創建一個臨時文件並把它鏈接到容器中的/tmp
目錄 - ADD :拷貝文件並且重命名(前面是上傳jar包的名字,后面是重命名)
- RUN :每條run指令在當前基礎鏡像執行,並且提交新鏡像
- ENTRYPOINT :為了縮短 Tomcat 的啟動時間,添加
java.security.egd
的系統屬性指向/dev/urandom
作為 ENTRYPOINT
5.將創建好的Dockerfile文件和jar包上傳到服務器,放在同一文件夾下,進入jar包所在文件夾,執行命令
注意:后面末尾有一個空格和一個“.”,mystory是創建的鏡像的名字,“.”表示當前目錄
docker build -t mystory .
6.查看生成的鏡像:
docker images
7.創建容器並運行jar包
docker run -d -p 8080:8080 mystory
-d表示在后台運行
-p 指定端口號 第一個8080為容器內部的端口號,第二個8080為外界訪問的端口號,將容器內的8080端口號映射到外部的8080端口號
如果想用域名來訪問的話,需要把數據庫連接改為服務器的ip+數據庫端口號,並且命令改為:docker run -d -p 80:80 mystory
8.測試
外網ip+端口號訪問項目
如果是用阿里的ECS需要改實例安全組開放3306端口和8080端口,點這里
ok~