【背景】最近测试环境发版巨感无聊,重复性的jps查进程、kill -9 、然后就是Ctrl+C和Ctrl+V上传,在java -jar 启动jar。本人也是新手,不太了解sh脚本已经其它的操作工具。在无意中看到可以通过IDEA直接上传jar包病运行的方式,特别去了解操作一下,特此记录一下。
一、服务器环境
公司提供的测试服务器(CentOS Stream)
1、服务器安装docker
1、先卸载系统之前的老版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、查看当前的系统,要求系统内核3.0以上
uname -r
3、安装依赖包(如果未安装的话)
yum install -y yum-utils
【注意⚠️】 到了这一步我就开始各种问题报错,安装不成功ERROR和404满天飞; 【排除问题】 1、猜测服务器无法访问外网(结果真的梦想成真),测试方法ping外网地址(百度、谷歌)测试一下。
ping www.baidu.com
后续运维同学帮我放开后,可以访问到外网。但是依然ERROR和404满天飞; 2、猜测是因为yum的源不OK了。无法下载,然后在查看/etc/yum.repos.d文件夹下一堆源地址配置项(暂时这么理解)。 具体报错内容
Errors during downloading metadata for repository 'base':
- Curl error (28): Timeout was reached for http://mirrors.aliyuncs.com/centos/8-stream-stream-stream-stream/BaseOS/aarch64/os/repodata/repomd.xml [Connection timed out after 30001 milliseconds]
- Status code: 404 for http://mirrors.aliyun.com/centos/8-stream-stream-stream-stream/BaseOS/aarch64/os/repodata/repomd.xml (IP: 183.201.84.178)
错误:为 repo 'base' 下载元数据失败 : Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
解决方案: 第一步:进入这个文件,在终端输入:
cd /etc/yum.repos.d/
第二步:删除.repo,输入下面命令,输入 y
rm *.repo
第三步:查看当前目录下的.repo是否删除成功,输入下面字符串,若没有显示.repo就删除成功了
ls
第四步:下载可以正常使用的.repo文件 安装curs命令的使用:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
安装wgets命令的使用
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
第五步:运行yum makecache
yum makecache
出现如下就是完成了!
之后我们就重新安装命令就可以了!
如上引用地址码头
4、安装Docker 运行所需的底层依赖关系的包
yum install -y yum-utils device-mapper-persistent-data lvm2
5、安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
6、更新yum,建立缓存
sudo yum makecache fast
二、Docker安装
目前有两个版本:
- Docker-CE (Community Edition):社区版(开源免费)。
- Docker-EE (Enterprise Edition):企业版(闭源收费)。
1、查看系统可用的 Docker CE 所有版本及其排序
yum list docker-ce --showduplicates | sort -r
2、安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
【可能用上】
sudo yum erase podman buildah
【查看是否安装成功】
docker version
3、启动Docker
systemctl start docker
systemctl status docker
4、若需开机启动,执行
systemctl enable docker
5、修改docker配置文件
5.1、修改docker.service文件
在 /usr/lib/systemd/system/docker.service目录下编辑 docker.service 文件搜索 ExecStart= 找到下面的配置进行修改。 修改如下内容:将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
改为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
5.2、 重启服务
systemctl daemon-reload
systemctl restart docker
这样配置后,Docker私有仓库就会在2375端口上运行,可以使用2375端口来进行远程操作。
三、开放服务器端口
1、查看当前服务器所开放端口
firewall-cmd --list-port
2、 开放2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
3、 重启防火墙
firewall-cmd --reload
四、IDEA配置Docker插件
4.1 Docker插件安装
打开idea,从file->settings->plugins->install jetbrains plugin进入插件安装界面,在搜索框中输入docker,可以看到docker ,点击右边的install按钮进行安装。安装后重启idea。
重启后配置docker,连接到远程docker服务。从file->settings->build,execution,deployment->docker打开配置界面。
4.2配置dockerfile文件:在工程根目录下新建dockerfile文件
内容如下:
# 基础镜像
FROM openjdk:8-jre
# 维护者信息
MAINTAINER 刘小二
# 创建一个存放工程的目录
RUN mkdir -p /usr/JCSZYX/java
# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone
# 复制主机jar包至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD target/hxls-market-0.0.1-SNAPSHOT.jar /usr/JCSZYX/java/hxls-market-0.0.1-SNAPSHOT.jar
# 容器启动执行命令
ENTRYPOINT ["java","-jar", "/usr/JCSZYX/java/hxls-market-0.0.1-SNAPSHOT.jar"]
# 对外暴露的端口号
EXPOSE 7080
4.3配置Docker启动项
五、打包测试上传服务器流程
在idea的右边找到Maven,找到Lifecycle,双击package打包,第一次打包比较慢,需要安静等待。
到此也小结一下,此时此刻服务器上的容器是运行起来了,记得开启jar的服务端口,后续在补充其它。其它博主写的很赞,我只时小记一下。