一、安装Docker环境
使用 Homebrew 安装
macOS 我们可以使用 Homebrew 来安装 Docker。
Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:
1$ brew cask install docker 2 3==> Creating Caskroom at /usr/local/Caskroom 4==> We'll set permissions properly so we won't need sudo in the future 5Password: # 输入 macOS 密码 6==> Satisfying dependencies 7==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg 8######################################################################## 100.0% 9==> Verifying checksum for Cask docker 10==> Installing Cask docker 11==> Moving App 'Docker.app' to '/Applications/Docker.app'. 12🍺 docker was successfully installed!
在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标(
)。
从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。

点击顶部状态栏中的鲸鱼图标会弹出操作菜单。


第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。

启动终端后,通过命令可以检查安装后的 Docker 版本。
1$ docker --version 2Docker version 17.09.1-ce, build 19e2cf6
二、SpringBoot应用打包成Docker镜像并运行
部署过程分为以下几个步骤:
- 创建一个简单的spring-boot应用
- 打包运行应用
- 容器化应用
- 在pom文件中添加docker支持
- 创建docker镜像
- 运行docker容器
- 查看正在运行的容器
- 启动/关闭/重启/删除docker容器
1. 2.创建SpringBoot应用这里就不赘述了
3. 容器化应用
在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:
1FROM frolvlad/alpine-oraclejdk8:slim 2VOLUME /tmp 3ADD demo-0.0.1-SNAPSHOT.jar app.jar 4RUN sh -c 'touch /app.jar' 5ENV JAVA_OPTS="" 6ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
JAVA_OPTS中可以加一些参数,如果配置了多环境,可以加"-Dspring.profiles.active=prod"
其中 demo-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名
4. 在pom文件中添加docker支持
1<properties> 2 <docker.image.prefix>ramer</docker.image.prefix> 3</properties> 4<build> 5 <plugins> 6 <plugin> 7 <groupId>com.spotify</groupId> 8 <artifactId>docker-maven-plugin</artifactId> 9 <version>0.4.11</version> 10 <configuration> 11 <imageName>${docker.image.prefix}/${project.artifactId}</imageName> 12 <dockerDirectory>src/main/docker</dockerDirectory> 13 <resources> 14 <resource> 15 <targetPath>/</targetPath> 16 <directory>${project.build.directory}</directory> 17 <include>${project.build.finalName}.jar</include> 18 </resource> 19 </resources> 20 </configuration> 21 </plugin> 22 </plugins> 23</build>
5. 创建docker镜像
cmd进入到当前目录:
cd ~/work/springboot-demo
打包,创建镜像:
mvn package -Dmaven.test.skip=true docker:build
注意: 请确保maven已添加到path中;并且已安装docker,如果没有安装,请访问: https://www.docker.com/community-edition#/download 下载合适的版本.
6. 运行docker容器
sudo docker run --name test -p 8080:8080 -d study/test
容器的名字是test,容器的镜像是study/test
在浏览器访问: http://localhost:8080/hello
7. 查看正在运行的容器
cmd: docker ps
8. 启动/关闭/重启/删除docker容器
1cmd: docker start/stop/restart/rm CONTAINER_ID/NAME 2其中: 3CONTAINER_ID: 是容器id,执行 docker ps 可查看 4NAME: 是容器的名称,也就是docker run –name后面的名字
三、将docker镜像发送到服务器
1.将指定镜像保存成 tar 归档文件
docker save -o ~/Downloads/test.tar study/test
2.利用scp命令将tar文件发送到服务器
#这一步很重要,如果不加权限,会出现permission denialsudo chmod 777 ~/Downloads/test.tarscp ~/Downloads/test.tar test@40.73.130.115:/home/test/data/study/temp
3.在服务器上还原docker镜像
sudo docker load -i test.tar
4.运行docker容器
sudo docker run --name test -p 8080:8080 -d study/test
参考资料: