时间:2020-02-15来源:系统城作者:电脑系统城
最近在滴滴云上看到服务器很便宜,1核2G,1年只需要68块钱。下面是我基于Docker部署Javaweb服务的过程。目前我见过的最便宜的服务器,阿里云打折的时候都没有这么便宜啊,果断入手。有需要的话可以通过下面链接购买。
滴滴云全线标准型云服务器限时特惠,新购云服务包1个月5折,包3个月4折,包6个月低至3折。注册即送2200元新手大礼包,速度上车。点击查看:https://i.didiyun.com/280pWTzUktG
Java项目是基于SpringBoot,使用Maven构建的项目,就是普通的springbtoo的web项目,不需要什么特别的配置。
包括了配置nginx请求和ssl证书。
域名是在阿里云申请的,证书也是在阿里云申请的,服务器是在滴滴云购买的。
# 安装docker
sudo apt-get install docker.io
# 查看权限问题
ll /var/run/docker.sock
# 将当前用户添加到docker组中
sudo usermod -aG docker ${USER}
# 更新docker组
sudo newgrp docker
# 重启服务,然后重新登录下用户即可
sudo systemctl restart docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://d3jht7al.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull mysql
# 创建基于mysql的docker容器,密码默认为password
docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -d mysql:5.7
# 进入Mysql容器
docker exec -it mysql env LANG=C.UTF-8 /bin/bash
# 进入mysql控制台
mysql -uroot -ppassword
docker pull maven
# 创建路径,存在java项目
mkdir -p $HOME/projects
# 项目所在目录 /home/dc2-user/projects/x-lidaoyuan
# 创建数据卷,用于共享maven数据
docker volume create --name maven-repo
# 查看数据卷
docker volume ls
# 创建基于maven的容器,使用数据卷maven-repo,编译项目,在项目目录下生成jar包
docker run -it --rm --name my-maven -v maven-repo:/root/.m2 -v "$HOME/projects/x-lidaoyuan":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.3-jdk-8 mvn clean package
docker pull java:8
# 创建容器,端口设置为7878
docker run -it --name liaoliaoba -p 7878:7878 -v "$HOME/projects":/root/projects java:8
# 进入容器(首次创建会自动进入,不需要这行命令)
docker exec -it liaoliaoba env LANG=C.UTF-8 /bin/bash
# 并启动项目
java -Dfile.encoding=UTF-8 -jar /root/liaoliaoba/liaoliaoba-api/target/liaoliaoba-api-0.0.1-SNAPSHOT.jar &
docker pull nginx
# 创建基于nginx的docker容器,conf.d目录下放置的是配置文件
docker run -it --name nginx -p 80:80 -p 443:443 -v "$HOME/projects/x-lidaoyuan/x-liaoliaoba/config/nginx/html":/usr/share/nginx/html -v "$HOME/projects/x-lidaoyuan/x-liaoliaoba/config/nginx/conf.d":/etc/nginx/conf.d -v "$HOME/projects/x-lidaoyuan/x-liaoliaoba/config/nginx/cert":/etc/nginx/cert -d nginx
文件llba.xxx.top-ssl.conf
docker inspect liaoliaoba
可以查看到该IP地址
upstream tomcat_llba {
server 172.17.0.3:7878;
}
server {
listen 443 ssl;
server_name llba.xxx.top;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
ssl_certificate /etc/nginx/cert/3320062_llba.xxx.top.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key /etc/nginx/cert/3320062_llba.xxx.top.key; #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /llba/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat_llba;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
docker pull redis
docker run -itd --name redis -p 6379:6379 redis
java -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -jar /root/projects/x-lidaoyuan/x-liaoliaoba/target/x-liaoliaoba-1.0.0-SNAPSHOT.jar &
kill `jps -l | grep x-liaoliaoba | awk '{print $1}'`
/root/stop.sh
/root/start.sh
# 连续回车三次,就剩生成公私钥,然后将公钥`id_rsa.pub`放在GitHub上。
ssh-keygen -t rsa -C "example@163.com"
git config --global user.name "examplePC"
git config --global user.email "example@163.com"
# 查看配置是否生效
git config -l
# 切换到目录下
cd /home/dc2-user/projects/liaoliaoba
# 拉取镜像
git pull
# 构建项目
docker run -it --rm --name my-maven -v maven-repo:/root/.m2 -v "$HOME/projects/x-lidaoyuan":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.3-jdk-8 mvn clean package
# 进入java容器,并重启项目
docker exec -it liaoliaoba env LANG=C.UTF-8 /bin/bash
2024-07-18
Centos 7 二进制安装配置 MariaDB数据库2024-07-18
Centos7默认firewalld防火墙使用命令大全2024-07-07
四种执行python系统命令的方法常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03