【使用Idea创建一键部署项目到Docker(保姆级教程)】
时间:2024-04-26 07:55:30 来源:网络cs 作者:亙句 栏目:数据分析 阅读:
使用Idea创建一键部署项目到Docker
前言1. 安装docker1.1 安装依赖包1.2 配置镜像源1.3 安装依赖包1.4 安装 containerd1.5 安装 Docker Engine-Community1.6 验证docker是否安装成功,以及设置开机自启1.7 docker常用命令 2. 服务器上使用TSL加密远程传输2.1 Docker开启远程访问2.2 Docker 启用 TLS2.3 配置 Docker 启用 TLS监听 3. Idea配置3.1 下载插件3.2配置秘钥连接Docker3.3 开始部署项目3.4 运行配置
前言
Hello今天给大家带来如何一键部署项目到docker,什么事docker呢如果还有不会的建议先学习一下,这里仅整合资源, 参考原文
1. 安装docker
*这里注意如果你是新服务器,请先安装yum源
1.1 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 配置镜像源
//这里配阿里置国内镜像,会快很多yum config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.4 安装 containerd
yum install -y containerd.io --allowerasing
1.5 安装 Docker Engine-Community
# 搜索存储库中可用的版本,按照版本号从高到低排序yum list docker-ce --showduplicates | sort -r
# 选择可用的版本yum install -y docker-ce-[这里填版本号]
1.6 验证docker是否安装成功,以及设置开机自启
docker version
如果出现版本号说明成功了
1.7 docker常用命令
//设置开机自启(强烈建议使用)systemctl enable docker//启动 Dockersystemctl start docker//重启 Dockersystemctl restart docker//停止 Dockersystemctl stop docker
2. 服务器上使用TSL加密远程传输
2.1 Docker开启远程访问
//这里需要编辑文件注意大小写和空格vim /usr/lib/systemd/system/docker.service//输入完命令按i,改完后esc->:wq->回车
在ExecStart=/usr/bin/dockerd 追加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重启 Docker 让配置生效
systemctl daemon-reloadsystemctl restart docker
2.2 Docker 启用 TLS
我们这里生成tls证书这一步非常关键,好好看好好学
//1.创建TLS证书存储位置,这一步位置你可以自定义,但是后面的shell脚本地址得改,不想麻烦的话建议跟着我来 mkdir -p /etc/docker/cert//2. 创建shell脚本vim /etc/docker/create_tls_cert.sh
这里是shell脚本,上面命令输入完后,把以下内容粘贴进
#!/bin/bashset -eif [ -z $1 ];then echo "请输入 Docker 服务器主机名" exit 0fiHOST=$1# 生成证书的目录 /etc/docker/certcd /etc/docker/certopenssl genrsa -aes256 -out ca-key.pem 4096openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pemopenssl genrsa -out server-key.pem 4096openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr# 配置白名单,推荐配置0.0.0.0,允许所有IP连接但只有证书才可以连接成功#这里如果你服务器已经配置域名那么就用DNS,如果没有那么就用IP,这里我默认是IP# echo subjectAltName = DNS:$HOST,IP:0.0.0.0 > extfile.cnfecho subjectAltName = IP:$HOST,IP:0.0.0.0 > extfile.cnfopenssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnfopenssl genrsa -out key.pem 4096openssl req -subj '/CN=client' -new -key key.pem -out client.csrecho extendedKeyUsage = clientAuth > extfile.cnfopenssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnfrm -v client.csr server.csrchmod -v 0400 ca-key.pem key.pem server-key.pemchmod -v 0444 ca.pem server-cert.pem cert.pem
输入完命令按i,改完后esc->:wq->回车
执行脚本
sh /etc/docker/create_tls_cert.sh [这里填写域名或者服务器ip,看你配置文件里配的是什么]// ps: 比如ip为192.168.1.1 那么就是sh /etc/docker/create_tls_cert.sh 192.168.1.1
cd /etc/docker/cert
然后进入一开始配置秘钥存储位置的地方,可以看到有8个文件,如果不是8个就有问题,这里只提取 ca.pem 、cert.pem、key.pem 三个文件到本地(就是你运行idea的机器),找个地方存储起来,比如我放在C盘,或者D盘,创个目录,这个目录一定要记住
2.3 配置 Docker 启用 TLS监听
这一步返回服务器命令窗口,再修改一遍Docker配置
vim /usr/lib/systemd/system/docker.service
在原来的配置后面追加一些东西,或者替换,这里大概意思就是添加生成三个秘钥的路径
ExecStart=/usr/bin/dockerd \ --tlsverify --tlscacert=/etc/docker/cert/ca.pem \ --tlscert=/etc/docker/cert/server-cert.pem \ --tlskey=/etc/docker/cert/server-key.pem \ -H tcp://0.0.0.0:2376 -H unix://var/run/docker.sock
老样子重载配置和重启 Docker 生效
systemctl daemon-reload systemctl restart docker
3. Idea配置
3.1 下载插件
首先打开Idea去插件市场弄一个插件,File ->Srttings ->Plugins -> Marketplace 搜索Docker,第一个就是
3.2配置秘钥连接Docker
接下里我们配置一下连接的秘钥
打开 File → Setting → Build,Execution,Deployment → Docker → +
显示上面的东西就说明成功了
连接不成功主要有以下几个原因:请逐一排查:
服务器端口没开放,建议配置安全组开放端口docker远程连接配置失败.建议好好跟着我前面的文章一步一步来本地秘钥路径不正确一定哟啊是https开头不能是https未知,去百度吧3.3 开始部署项目
首先呢在项目根目录添加 Dockerfile 文件,什么是根目录,就是和你pom.xml同级的
# 基础镜像FROM openjdk:8-jre# 维护者信息MAINTAINER xxxxx# 设置容器时区为当前时区RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录VOLUME /tmp# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下ADD target/admin-boot.jar app.jar# 容器启动执行命令ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]# 声明容器提供服务端口EXPOSE 8800
3.4 运行配置
左上角+ -> Docker -> Dockerfile
打包命令: clean package -U -DskipTests启动配置: spring.profiles.active= 哪个配置文件
选择服务点击启动就行了,好了这里就是全部内容了,制作不易,感谢大家三连!献上膝盖了
本文链接:https://www.kjpai.cn/news/2024-04-26/162355.html,文章来源:网络cs,作者:亙句,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!