centos 7.6 内存16g 硬盘500g cpu>8 核心数>2
输入命令cat /etc/selinux/config,查看SELINUX配置项,如果不是disabled,需修改
方式1:对于linux vi命令不熟悉的
方式2:使用vi操作修改文件
1.在/opt目录下创建software文件夹 2.将docker-19.03.6.tgz上传至此文件夹中,即/opt/software目录 3.执行命令进入此文件夹,
cd /opt/software
4.执行解压命令:
tar xzvf docker-19.03.6.tgz
5.执行命令:
cp docker/* /usr/bin/
此命令的作用是将解压出来的docker文件夹中的所有文件拷贝至/usr/bin目录下 cd /usr/bin/ 6.执行命令:
dockerd &
启动docker 7.执行命令:
docker info
查看是否已安装成功 至此,如上图所示docker已安装完成,为了让docker可受systemctl命令控制,我们还可以做进一步扩展:
8.执行命令:
cp docker.socket /etc/systemd/system cp docker.service /etc/systemd/system
命令的作用是将docker.service和docker.socket文件拷贝至/etc/systemd/system目录
9.重启 systemctl 守护进程
执行命令:
systemctl daemon-reload
10.将docker 服务加入开机自启动:
执行命令:
systemctl enable docker
命令:firewall-cmd --zone=public --add-port=端口/tcp --permanent 例如:firewall-cmd --zone=public --add-port=9998/tcp --permanent
Portainer:9000端口 网关:9999 后端:7777 前端:8888
也可以开放指定范围的端口,便捷,不用一一列举,但是会开放一些用不到的端口
命令:firewall-cmd --zone=public --add-port=端口范围-端口范围/tcp --permanent
例如:
firewall-cmd --zone=public --add-port=0000-9999/tcp --permanent
如果页面访问有问题,端口用到的太多了,建议用这个命令。
无论是方式1还是方式2,都需要重启防火墙服务 执行命令:
firewall-cmd --reload
如果防火墙没开启的话,可执行启动命令:
systemctl start firewalld.service
其它防火墙操作参考命令:
查看开启的端口:firewall-cmd --list-ports 关闭防火墙命令:systemctl stop firewalld.service 关闭开机自启动:systemctl disable firewalld.service
为防止后期docker内容器日志过大,引发磁盘空间不足,需要将daemon.json文件上传放置在/etc/docker/目录下,如果有此文件,修改即可
修改后需要杀掉docker进程,然后重启docker服务 执行命令:
ps -ef|grep docker
执行命令:
kill -9 进程ID
进程ID如何找: 如图所示,找到/usr/bin/dockerd对应的那行,第一串数字对应的就是进程ID
重启docker:
systemctl daemon-reload systemctl restart docker
1.将JDK8镜像上传至/opt/software目录下
2.将上传的JDK镜像载入docker容器 在software目录下,执行命令:
docker load < jdk8-images.tar
Portainer是docker的可视化管理工具。建议安装。 安装后实施可以可视化地进行服务重启、服务停止等。 开发也便于进行错误排查等工作。
1.将portainer镜像上传至/opt/software目录下
2.将上传的portainer镜像载入docker容器
执行命令:
docker load < portainer-images.tar
3.启动portainer,占用9000端口 执行命令:
docker run -d --name portainer -m 1G --restart always -p 9000:9000 -v /etc/localtime:/etc/localtime -e TZ="Asia/Shanghai" -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
4.在chrome浏览器中打开地址http://IP:9000来查看是否启动成功。 IP是当前Linux服务器的地址。
初次进入默认用户是admin,需设置密码,建议设置为123456。然后选择local,点击connect即可。
1.使用提供的 redis-images-6.0.10.tar 文件,上传到服务器 /opt/software/ 中 2.docker 命令加载镜像
cd opt/software docker load < redis-images-6.0.10.tar //等待结束后,使用以下命令查看镜像,能够刚看到redis:6.0.10 即为成功 docker images
docker run -d --name emr-redis --restart always -p 6379:6379 -v /opt/app/redis/data/:/data redis:latest --appendonly yes --requirepass "password"
requirepass后面是设置redis密码
docker ps
将nginx-images.tar上传至/opt/app/pro-jar目录
载入nginx镜像,在/opt/app/pro-jar目录下执行命令:
docker load < nginx-images.tar
创建/opt/app/client目录,将nginx.conf上传至client目录 启动nginx,执行命令:
docker run -d --name emr-nginx --restart always --network host \ -v /opt/app/client:/opt/app/client \ -v /opt/app/client/nginx.conf:/etc/nginx/nginx.conf \ -v /opt/app/client/nginx-logs:/var/log/nginx \ nginx
1、将前端编译好的项目文件包放入/opt/app/client/自定义文件夹名/目录下,修改nginx.conf配置文件的应用路径信息,如: nginx.conf默认配置信息
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
需要了解具体含义可以看这篇
server { listen 8888; server_name 127.0.0.1; gzip_static on; #charset koi8-r; #access_log logs/localhost.access.log main; location / { #------------------前台资源跟路 ?----------------- root /opt/app/client/my-react; index index.html index.htm; try_files $uri $uri/ /index.html; } #------------------权限后台接口------------------ location /api { proxy_pass http://127.0.0.1:9999/; } }
2、进入portainer容器管理页面,选择emr-nginx,点击restart按钮,重启nginx,使最新的前端应用生效。
1.在/opt目录下,新建目录app/pro-jar
2.将emr-eureka-1.0.jar、emr-eureka-dockerfile、upgrade-eureka.sh上传至服务器/opt/app/pro-jar目录下
FROM openjdk:8-jdk-alpine WORKDIR /app COPY target/my-java-app.jar /app/ EXPOSE 8080 CMD ["java", "-jar", "my-java-app.jar"]
例如这个Dockerfile使用了一个名为openjdk:8-jdk-alpine的基础镜像,该镜像包含了Java运行环境。然后设置了工作目录为/app,将应用程序的jar文件复制到容器中的/app目录下,暴露了容器的8080端口,并使用CMD指令运行应用程序。在构建Docker镜像时,可以使用这个Dockerfile来打包Java应用程序。
#!/bin/bash # 停止当前运行的pro-emr-eureka容器 docker stop pro-emr-eureka # 删除原有的pro-emr-eureka容器 docker rm pro-emr-eureka # 构建新的pro-emr-eureka容器 docker build -t emr-eureka:pro . # 运行新的pro-emr-eureka容器 docker run -d --name pro-emr-eureka -m 1G --restart always --network host emr-eureka:pro echo "pro-emr-eureka服务容器已成功更新并部署!"
3.查看upgrade-eureka.sh脚本是否有执行权限 如果没有权限,需更改权限 执行命令:
chmod 777 upgrade-eureka.sh
4.将emr-eureka-1.0.jar编译成镜像并运行服务
执行脚本文件upgrade-eureka.sh编译运行服务即可:注意前面有个小点.
./upgrade-eureka.sh
5.查看服务是否启动成功
这个是配置生产环境的信息 1、将config-1.0.jar、emr-config-dockerfile、emrConfig.yml、upgrade-config.sh文件上传至服务器/opt/app/pro-jar
2、修改emrConfig.yml文件的权限
chmod 666 emrConfig.yml
3、如果没有权限,需更改权限执行命令:
chmod 777 upgrade-config.sh
4、查看upgrade-config.sh文件是否有执行权限,参考8.1 Eureka服务部署的第3点
5、将config-1.0.jar编译成镜像并运行执行命令:
./upgrade-config.sh
1.在/opt目录下,新建目录app/pro-jar
2.将java-demo.jar、java-demo-dockerfile、upgrade-java-demo.sh上传至服务器/opt/app/pro-jar目录下
3.查看upgrade-java-demo.sh脚本是否有执行权限,如果没有权限,需更改权限 执行命令:
chmod 777 upgrade-java-demo.sh
4.将java-demo.jar编译成镜像并运行服务 执行脚本文件upgrade-java-demo.sh编译运行服务即可:注意前面有个小点.
./upgrade-java-demo.sh
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!