首页天道酬勤一台服务器多个docker(docker多服务器部署)

一台服务器多个docker(docker多服务器部署)

admin 12-02 06:06 514次浏览

Docker作为目前流行的微服务容器管理工具,极大地方便了传统运维的部署。IDEA作为表面上最强的Java开发IDE,自然为Docker服务提供了支持。本文将记录如何通过点击IDEA将SpringBoot部署到远程服务器Docker。

应用场景

我们先来看看传统的部署流程:

传统的开发过程很好,版本之间间隔很长。但是对于小型敏捷开发团队来说,这个过程是非常致命的!心平气和锁定个人体验,估计每个项目从打包到重启Docker服务器需要将近10~20分钟!我很痛苦。

需具备的条件

如果你想顺利阅读这篇文章,你需要以下条件:

你知道服务器的基本用途。你知道Docker/Dockerfile的用法。您知道基本的Bash命令。本文的环境:

远程服务器阿里巴巴云centosdock 1 . 13 . 1 idea 2019 . 3 . 2

一定要注意环境的差异,考虑不兼容的可能性;并满足上述要求。否则,看这个博客可能会给你带来麻烦。

00-1010本教程有很多小步骤!任何轻微的疏忽都可能导致失败!请在实践中仔细阅读教程!

00-1010输入安装Docker的远程服务器,创建一个目录ca来存储docker ca认证文件:

进入目录:

Cd /usr/local/ca执行以下命令来生成公钥和私钥。你需要输入你自己的密码。记住这个密码,将在下面被多次使用。

执行以下命令,并根据提示输入您的信息:

opensslreq-new-x509-days 365-key ka-key . PEM-sha 256-outca . PEM执行以下命令生成key:

执行以下命令,用远程服务器:的IP地址替换$HOST。

例如,如果您的IP地址是165.115.12.0,那么它将变成“/CN=165.115.12.0”

opensslreq-sub '/cn=$ host '-sha 256-new-key server-key . PEM-outserver . CSR执行以下命令来配置白名单。

也就是说,指定的IP机器被允许远程操作码头工人。建议直接配置到0.0.0.0,也就是释放所有IP。因为我们已经有了证书加密,我们只需要保护证书文件。

另外别忘了用远程服务器的IP地址替换$HOST!

echo Subject Altname=IP : $ host,IP :0.0.0.0 extfile.cnf将Docker守护程序密钥的扩展用法属性设置为仅服务器身份验证:

echo extended key usage=server authextfile . CNF生成ca-key(需要上面设置的密码):

OpenSSL x509-req-days 365-sha 256-in server . CSR-ca . PEM-cakeyca-key . PEM \-cacreateimperial-out server-cert . PEM-extfilextfile . CNF生成远程连接所需的连接密钥,依次执行3360。

OpenSSL gen RSA-out key . PE 4096 OpenSSL req-sub '/cn=client '-new-key . PEM-out client . CSR echo extended key usage=client authext file . CNF生成cert.pem(需要上面设置的密码)3360

open SSL x509-req-days 365-sha 256-in client . CSR-CA CA . PEM-CAkey CA-key . PEM \-CAcreateserial-out cert . PEM-ext file ext file . CNF

生成cert.pem和server-cert.pem后,我们可以安全地删除不必要的配置文件:

Rm -v client.csr server.csr为了保护这两个文件不被损坏,请删除它们的可写权限,并将其设为只读。依次执行:

chmod -v 0400

ca-key.pem key.pem server-key.pemchmod -v 0444 ca.pem server-cert.pem cert.pem

将服务器证书拷贝至 /etc/docker :

cp server-*.pem /etc/docker/cp ca.pem /etc/docker/

修改docker配置:

vi /lib/systemd/system/docker.service

将其中的(可能略有差异):

ExecStart=/usr/cmdpj/dockerd

替换为:

ExecStart=/usr/cmdpj/dockerd --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-reloadsystemctl restart docker

开放外部端口

依次输入以下命令, 开放端口:

/scmdpj/iptables -I INPUT -p tcp --dport 2376 -j ACCEPTiptables-save

注意, 如果你使用了云服务器(如阿里云), 同样需要在云服务器上开放2376端口!

重启docker

service docker restart

下载客户端访问校验文件

使用FTP工具(如WinSCP), 进入 /usr/local/ca 目录, 将其中的三个文件:

/usr/local/ca/ca.pem /usr/local/ca/cert.pem /usr/local/ca/key.pem

存储至本地某文件夹内.

IDEA安装Docker插件

打开IDEA设置, 左上角 File -> Settings (快捷键 CTRL + ALT + S ).

找到 Plugins , 搜索关键词”docker`:

IDEA Docker 插件

若未安装, 点击 INSTALL 按钮进行安装. 安装完成后重启IDEA.

IDEA连接Docker

打开IDEA设置, 左上角 File -> Settings (快捷键 CTRL + ALT + S ).

找到Docker设置:

IDEA Docker设置位置

按照下方图片步骤操作:

https://你的IP:2376 Connection successful

IDEA配置Docker

创建Dockerfile

在项目目录中创建文件 Dockerfile :

#运行项目需要基于java镜像 FROM java:8 # 设置时区 RUN /cmdpj/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone #拷贝文件到容器 ADD target/*.jar app.jar #配置容器启动后执行的命令 ENTRYPOINT ["java","-jar","/app.jar"]

创建Docker运行配置

点击上方偏右的下拉框, 选择 Edit Configurations 点击:

创建一个Docker运行配置:

点击后进入一个详情页, 几个重要配置项在图片中有解释:

完成后进行保存.

进行如此一番折腾, 我们终于成功的搞定IDEA一键部署了!

运行一下, 当控制台日志显示success即为成功:

享受一键部署吧!

java计算机毕业设计网上超市系统源码+系统+数据库+lw文档+mybatis+运行部署2020 UCloud用户大会:升级新动能 创见新增长C++构造析构赋值运算函数怎么应用Java0基础_day11-抽象类与接口雷士灯具管理系统
驾校报名大厅设计图(驾校招生大厅) spring mvc 实战项目(idea创建springmvc)
相关内容