1 创建一个简单的springboot项目,用于测试
@SpringBootApplication
@RestController
public class DockerTestApplication {
public static void main(String[] args) {
SpringApplication.run(DockerTestApplication.class, args);
}
@GetMapping("/docker")
public String docker(){
return "Hello Docker!";
}
}
2 打包,项目重命名为app.jar将app.jar上传到/opt/docker_springboot目录下
3 编写Dockerfile
在/opt/docker_springboot下touch Dockerfile,写入如下脚本:
FROM daocloud.io/library/java:8 #下载项目所需运行环境jdk8
RUN bash -c 'mkdir /opt/car' #运行容器时在容器里的/opt下创建/car目录
COPY ./app.jar /opt/car #将当前目录下的app.jar添加到容器内部的/opt/car下
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/opt/car/app.jar"] #启动容器时运行/opt/car/app.jar
5 构建镜像
在/opt/docker_springboot下执行:
docker build -t car_image:1.0 .
.表示Dockerfile位于当前目录,car_image是镜像名称,1.0是版本号
构建后使用docker images查看
6 编写docker-compose.yml
version: '3.1'
services:
car: #服务名称,名称任意
restart: always #只要docker启动那么这个容器就跟着一起启动
image: car_image #镜像名称
container_name: car #容器名称
ports:
- 8080:8080 #端口映射
environment:
TZ: Asia/Shanghai #设置时区
volumes:
- /opt/docker_springboot:/opt/car #数据卷挂载
7 此时宿主机的目录如下:
8 使用docker-compose up -d命令启动容器,启动后使用docker ps查看:
9 浏览器访问虚拟机ip:8080/docker即可看到:
10 由于第六步使用volumes让宿主机和容器内部进行映射,在宿主机/opt/docker_springboot下随便创建一个文件,例如123.txt,然后使用
docker exec -it 容器id /bin/bash进入容器,在容器的/opt/car下也能看到123.txt
版权声明:本文为weixin_38470396原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。