赞
踩
1.进入该链接或者用安装下面命令
https://docs.docker.com/engine/install/centos/
2.用终端软件来链接你的服务器,新建一个文件夹(用户存放项目jar包和docker的文件)
mkdir 文件夹名称
3.清空有些旧的信息
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
4.输入一下命令安装yum-utils
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
中间会出现两次询问,输入y即可
即为安装成功,若需指定docker版本或已安装跳过这步,直接从检查冲突开始
sudo systemctl start docker
没有动静即证明docker已经启动成功
配置阿里云的镜像仓库(可选)
登录阿里云,进入控制台,返回旧版控制控制台,找到容器镜像服务
如图及说明已经配置完成
检查各个模块的端口,防止后面运行会出现端口占用的情况(不在演示)修改配置文件即可。
拉倒pom文件的下方,看一下是否找到build模块:
如果找到,删除build模块,否则会打包出现问题(要删除)
没有找到忽略即可
拉倒pom文件上方,找到modules模块:
检查一下这块各个模块名称和模块是否运行,只打需要运行的模块
首先清理一下,这样会清掉之前的target文件夹
首选按照上面图片打开编辑页面:
将默认的打包命令改为以下的命令:
clean install -DskipTests -f pom.xml
如图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztAFAepE-1683382766918)(C:\Users\wang\AppData\Roaming\Typora\typora-user-images\image-20230424110156371.png)]
这时候右上角会出现Maven的运行指令,直接运行即可
等待打包结束:
注意:这时候可以留意一下打包的时间,如果太快,检擦前面的pom文件(1.2当中)否则后面可能会出现jar包过小,找不到主类的问题
2.将打的jar包拷贝到一个文件夹,方面管理命名:
统一把后缀-0.0.1-SNAPSHOT删除,不删除在后面做Docker的时候保证jar包名称对应即可
使用ftp工具或其他软件进入/pro_jar文价夹(之前创建的文件夹),上传项目的jar包:
1.进入服务器/pro_jar文件夹(之前创建的文件夹)
2.上传上面打的jar包
1.拉取jdk的镜像,这里以jdk8为例,可以拉取不同版本jdk镜像(此微服务基于jdk8,所以拉取jdk8的镜像)
docker pull java:8
2.在先前创建好的文件夹中新建Dockerfile文件和start.sh文件
touch Dockerfile
touch start.sh
3.Dockerfile是构建Docker所需要的文件,里面将会存放构建镜像的一些信息
编写Dockerfile内容如下(以上面的微服务项目为例):
FROM java:8 #项目的依赖环境 MAINTAINER docker_maven docker_maven@email.com #maven的邮箱地址 WORKDIR /docker #docker的工作区,没有会自动创建 #把项目的jar包,批处理文件加入docker中 ADD 文件名 文件路径和 ADD start.sh /pro_jar/start.sh ADD feign.jar /pro_jar/feign.jar ADD Geteway.jar /pro_jar/Geteway.jar ADD help_about.jar /pro_jar/help_about.jar ADD project_base.jar /pro_jar/project_base.jar ADD study_talk.jar /pro_jar/study_talk.jar ADD user.jar /pro_jar/user.jar ADD user_auth.jar /pro_jar/user_auth.jar ADD School_shop.jar /pro_jar/School_shop.ja CMD ["java", "-version"] RUN chmod +x /pro_jar/start.sh #一下为运行命令 ENTRYPOINT ["sh","-c","/pro_jar/start.sh"] EXPOSE 63010 #微服务中网关的端口,或者你要往外暴漏的端口
注意,这里建议把注释删一下,经过测试不删除概率会有问题
start.sh为Linux中的批处理文件,里面讲放置运行项目的命令,由于微服务项目一般有多个模块需要运行,所以需要写此文件来批量运行各个模块(这里以上面打包的微服务项目为例)
编写start.sh文件:
# 命令后加入 & ,保持程序后台持续运行
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/Geteway.jar &
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/study_talk.jar &
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/help_about.jar &
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/user.jar &
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/user_auth.jar &
nohup java -Dfile.encoding=utf-8 -jar /pro_jar/School_shop.jar &
#指定端口java -jar xxxxxxx-0.0.1-SNAPSHOT.jar --server.port=XXXX
# 死循环,保持docker前台运行
while [[ true ]]; do
sleep 1
done
将以上的文件保存
使用ssh链接服务器,进行以下操作:
1.进入项目目录:(/pro_jar/为之前创建的目录)
cd /pro_jar/
2.查看docker当前的章台:
docker ps -a
3.构建docker镜像:(edu:1.0 为镜像的名称和标签)
docker build -t edu:1.0 .
4.运行docker
docker run -d -p 63010:63010 --name edu edu:1.0
-d 后台运行
-p 开放的端口
–name 重新命名
5.查看日志:(edu为运行时指定的新docker名)
docker logs -t edu
如图就说明已经启动说明已经成功启动,若访问不了,检查一下Dockerfile文件和start.sh文件,可以看一下运行输出。
其他操作:
1.停止正在运行的docker:(edu为当前的docker运行的名称)
docker stop edu
2.移除正在运行的docker:(edu与docker名对应(name))
docker rm edu
3.删除docker镜像:(edus:1.0为镜像名称加标签)
docker rmi edu:1.0
查看docker的镜像:
docker images
由于之前暴露docker默认的2375的端口会非常危险(docker默认不需要密码)所以在做这个操作需要配置CA证书
(不爆露公网的,在内网中环境中可以直接用http链接,无需CA证书)
1.在设置-构建中找到docker模块
2.输入doker的远程url:(要用HTTPS,内网直接走http即可)
https://***.***.***.****:2375
放入docker的CA证书(走内网无需放入)
3.确定
之后会在servers中出现docker,如图所示,即可进行操作:
以上若有小问题或其他,可以私信作者~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。