docker部署springboot应用

一、下载安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动:systemctl start docker

二、配置国内镜像源

(1)在/etc/docker目录中添加daemon.json文件,内容如下:
        {
              "registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
        }
(2)重启docker服务:
        systemctl restart docker
 

三、编写Dockerfile

vim Dockerfile

内容如下:

FROM java:8
VOLUME /tmp
ADD skill_training.jar /skill_training.jar
ENTRYPOINT ["java", "-jar", "-Xms256m", "-Xmx256m", "/skill_training.jar", "--server.port=8085"]

解释:

FROM java:8     设置基础镜像,这里我只想启动SpringBoot,所以一个Java8基础镜像足以
VOLUME /tmp         将容器挂载在tmp路径下
skill_training.jar /skill_training.jar     由于我的Dockerfile是和jar包在同一目录下的,所以这里是将当前目录下的jar包复制到编译生成的镜像中
ENTRYPOINT ["java", "-jar", "-Xms256m", "-Xmx256m", "/skill_training.jar", "--server.port=8085"]     
这是容器的入口程序,容器在启动时会执行这里编写的命令,通过该命令启动我的jar包的命令并指定SpringBoot监听端口8090

四、运行Dockerfile,生成Docker镜像

1、生成镜像

docker build -t demo1.0.0 .

注意后面有个 .

2、查看镜像

docker images

五、运行

docker run -d -p 8085:8085 demo1.0.0 .

简单解释一下命令的含义:

docker run :创建一个新的容器并运行一个命令
-d:后台运行容器,并返回容器ID
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
blog:刚刚编译成功的镜像名称

六、测试容器是否正确运行

docker ps -a

 发现数据库连接不了

docker部署springboot应用_第1张图片

解决办法:带上参数 --net=host

docker run -d --net=host -p 8085:8085 demo1.0.0 -t

发现存在问题:

用@Scheduled(cron = "0 0 23 * * ?") ,容器会不按配置设置的时间,而是一直执行,欢迎交流讨论。

(1) 进入容器

docker exec -it dbb88ef17554 /bin/bash

(3)安装yum

参考文章:

ubuntu安装yum失败 :E: Unable to locate package yum 问题解决_Zsspace的技术博客_51CTO博客

apt-get install yum
 

常用命令:

1、查看日志

docker logs 057e22d042a5

2、停止容易

docker stop 057e22d042a5

3、删除容器

docker rm 057e22d042a5

4、删除镜像

docker rmi 057e22d042a5

5、进入docker容器(启动状态)

docker exec -it dbb88ef17554 /bin/bash

你可能感兴趣的:(docker,容器,运维)