环境
Linux:Ubuntu 20.4 docker:20.10 java:jdk8 + mvn 3.8 + idea 2021.2
1.在linux中安装docker
参考docker官方教程
###1.1卸载旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
###1.2更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
###1.3 安装最新版本的Docker Engine和containerd
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
###1.4 查看docker版本
$ docker -v
这里应该会报错说权限不够使用 sudo docker -v 可以,但是以后使用会很麻烦,就需要将当前用户添加到docker组中就可以了
$ sudo groupadd docker #添加docker用户组
$ sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
$ newgrp docker #更新用户组
2.配置docker远程端口
2.1 修改docker配置文件
修改/usr/lib/systemd/system/docker.service
文件在 ExecStart=/usr/bin/dockerd
后添加 -H tcp://0.0.0.0:2375
修改前:
修改后:
2.2 配置完成后,保存,然后重启 Docker
$ systemctl daemon-reload
$ service docker restart
3.IDEA中docker配置
如下图将Linux的IP地址和刚配置的远程端口配置好,看到链接成功的字样就可以里
如果此处不行需要查看防火墙是否开放了此端口,我这里直接关闭了防火墙。
$ sudo ufw disable # 关闭防火墙
$ sudo ufw status # 查看防火墙状态
4.创建springboot项目这里不在多说,然后就是创建Dockerfile文件
#使用jdk8作为基础镜像
FROM java:8
#指定作者
MAINTAINER Lee
#暴漏容器的8080端口 -P 是用
#EXPOSE 8080
#将复制target文件中的jar为容器中的test.jar,相当于拷贝到容器中取了个别名
ADD target/*.jar /test.jar
#创建一个新的容器并在新的容器中运行命令
RUN bash -c 'touch /test.jar'
#设置时区 根据情况看是否需要
#ENV TZ=PRC
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相当于在容器中用cmd命令执行jar包 指定外部配置文件
ENTRYPOINT ["java","-jar","/test.jar"]
5. 配置dockerfile
####端口绑定相当于docker run -p 的作用将容器的端口映射到主机不然会拒绝链接。
####执行前要选择添加maven,是运行前打包项目,不然每次运行都需要手动打包非常麻烦。
然后运行这个docker就可以看到下图:
####可以看到镜像docker-demo:v1.0.0已经在Linux的镜像仓库中了,容器docker-test也已经运行了。
这样就可以了。