注意:千万不要在公网情况下使用Docker 2375端口进行应用的的远程部署。
1.Docker安装:
https://blog.csdn.net/Sup_Coke_cola/article/details/99637494
2.CA认证:
由于证书创建步骤繁多,所以用脚本方式简化。
vi /usr/local/ca-install.sh
复制下面的脚本内容:
#!/bin/sh
#创建目录
mkdir -p /usr/local/ca
cd /usr/local/ca
echo '请输入2次相同密码'
openssl genrsa -aes256 -out ca-key.pem 4096
echo '请输入密码、国家、省、市、组织等信息'
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
#生成证书
openssl genrsa -out server-key.pem 4096
read -p "请输入服务器访问IP或域名: " serverIp
openssl req -subj "/CN=$serverIp" -sha256 -new -key server-key.pem -out server.csr
#白名单
echo subjectAltName = IP:$serverIp,IP:0.0.0.0 >> extfile.cnf
echo extendedKeyUsage = serverAuth >> extfile.cnf
echo '请输入密码'
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf
#签名证书
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
rm -v client.csr server.csr
#修改权限
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem
#拷贝证书
cp server-*.pem /etc/docker/
cp ca.pem /etc/docker/
rm -v /usr/local/ca-install.sh
echo '执行完成'
最后执行脚本 :
sh /usr/local/ca-install.sh
注意要输入很多遍密码哦!
3.docker配置
vi /lib/systemd/system/docker.service
在Execstart行最后添加配置如下:
--tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
重新加载并重启docker。
systemctl daemon-reload
systemctl restart docker
service docker restart
4.idea配置
将证书下载到本地。
scp -r root@服务器的地址或域名:/usr/local/ca D://
只需要其中的3个pem文件,其余的可以删除 。
idea需要安装docker插件。
创建连接完成后,可以在idea下方的services中连接docker服务器。
最后还需要在项目中配置docker打包和部署命令。
创建Dockerfile文件:
FROM java:8
VOLUME /tmp
ADD *.jar app.jar
ENV JAVA_OPTS="-Xms256m -Xmx256m -Xmn128m"
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
开始配置部署命令:
clean package -Dmaven.test.skip=true
完成配置,启动测试下。