1、Docker簡介
概念:Docker 是一個開源的應(yīng)用容器引擎,基于 Go 語言并遵從 Apache2.0 協(xié)議開源。
Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。
2、Docker三要素
鏡像
容器 是用鏡像創(chuàng)建的運行實例
可以把容器看作簡易版的Linux環(huán)境
倉庫 是集中存放鏡像文件的場所
2、CentOS7.+安裝Docker
使用官方安裝腳本自動安裝
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
設(shè)置阿里云的源
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝 Docker Engine-Community
$ sudo yum install docker-ce docker-ce-cli containerd.io
啟動 Docker
$ sudo systemctl start docker
通過運行 hello-world 映像來驗證是否正確安裝了 Docker Engine-Community
sudo docker run hello-world
3、運行第一個springBoot項目
使用Maven打包.jar
編寫Dockerfile文件
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基礎(chǔ)鏡像使用java
FROM java:8 或者 openjdk:8-jdk-alpine
# 作者
MAINTAINER shenhongtao12@aliyun.com
# VOLUME 指定了臨時文件目錄為/tmp。
# 其效果是在主機 /var/lib/docker 目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中并更名為app.jar
ADD demo-demo-0.0.1.jar app.jar
# 運行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
VOLUME 指定了臨時文件目錄為/tmp。其效果是在主機 /var/lib/docker 目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp。改步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來持久化到 Docker 數(shù)據(jù)文件夾,因為 Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄
項目的 jar 文件作為 “app.jar” 添加到容器的
ENTRYPOINT 執(zhí)行項目 app.jar。為了縮短 Tomcat 啟動時間,添加一個系統(tǒng)屬性指向 “/dev/./urandom” 作為 Entropy Source
部署文件

image.png
將jar包和Dockfile文件放置在同一目錄下
制作鏡像
docker build -t 鏡像名 .注:千萬別忘記后面有"."點

image.png
制作完成后通過
docker images命令查看制作的鏡像
image.png
啟動容器
docker run -d -p 8080:8085 鏡像名
-d參數(shù)是讓容器后臺運行
-p 是做端口映射,此時將服務(wù)器中的8080端口映射到容器中的8085(項目中端口配置的是8085)端口
查看正在運行的容器
docker ps

image.png
停止服務(wù)
docker stop container ID

image.png