docker常见部署

springboot+vue+docker部署

1.mysql

docker run -p 3307:3306 --name mysql \
-v /monkey/mysql/conf:/etc/mysql \
-v /monkey/mysql/logs:/var/log/mysql \
-v /monkey/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mysql1234 \
-d mysql:5.7

#命令说明:
-p 3307:3306 										#将容器的3306端口映射到主机的3307端口
-v /monkey/mysql/conf:/etc/mysql \ 		#配置映射目录
-v /monkey/mysql/logs:/var/log/mysql \		#日志映射目录
-v /monkeyt/mysql/data:/var/lib/mysql \		#数据库数据映射目录
-e MYSQL_ROOT_PASSWORD=mysql1234 \						#设置密码(用户名默认root)
-d mysql:5.7										#指定mysql镜像

2.redis

docker run -p 6379:6379 \
-v /monkey/redis/data:/data \
--name redis -d redis redis-server --appendonly yes

#命令说明:(没有配置密码)
-p 6380:6379 									#将容器的6379端口映射到主机的6380端口
-v /monkey/redis/data:/data 			#将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes 					#在容器执行redis-server启动命令,并打开redis持久化配置

3.minio

### 注意: 密码过于简单可能导致访问不了

docker run -d -p 9000:9000 --name minio --restart=always\
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=minio1234" \
-v /monkey/minio/data:/data \
-v /monkey/minio/config:/root/.minio  \
minio/minio server /data --console-address ":9000" --address ":9090"

# 测试
docker run -p 9090:9000 -p 9000:9090  --name minio  -d --restart=always  -e "MINIO_ACCESS_KEY=minio"  -e "MINIO_SECRET_KEY=minio1234"  -v /data/minio/data:/data  -v /data/minio/config:/root/.minio  minio/minio server  /data --console-address ":9090" -address ":9000"

4.springboot

1)打包,jar包上传服务器

2)创建Dockerfile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vh5LaY2C-1650770969379)(.assets/image-20220424095729351.png)]

FROM java:8
VOLUME /tmp
ADD ruoyi-admin.jar ruoyi.jar
EXPOSE 8081
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ruoyi.jar"]

# FROM 运行环境【第一次自动安装java8 环境】
# VOLUME 内嵌Tomcat容器默认使用/tmp作为工作目录,持久化【不能更改】
# ADD 重命名jar包,并拷贝到容器 
# EXPOSE 对外暴露端口好
# ENTRYPOINT 启动命令
	缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

3)构建容器

docker build -t 容器名称 .

# . 会在当前目录下,寻找Dockerfile文件

4)运行容器

docker run -di --name 容器名称 -p 8081:8081 镜像名称

# -di 后台运行
# 8081:8081  对外端口号:jar包中的端口号【注意】

5)日志

docker logs -f --tail=100 容器名称

6)注意事项

  • 服务器测试接口
curl http://localhost:8081/prod-api/captchaImage
  • 进入容器
 docker exec -it ruoyi bash

5.Vue

1)修改配置(vue.config.js)

const port = process.env.port || process.env.npm_config_port || 81 // 端口由80改为81

target: `http://139.9.189.49:8081`,	//修改代理后端接口地址

2)打包

npm run build

3)nginx配置

  • 目录结构
monkey
 |
 |--ruoyiweb
     |
     |—— 1.html		//前端代码
     |
     |—— 2.logs		//日志目录
     |
     |—— 3.config----1)nginx.conf		//nginx配置
     				 2)conf.d-------default.conf 	//vue默认配置
  • 1.nginx.conf配置文件
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/conf.d/*.conf;
}
  • 2.deafult.conf配置文件【改】
server {
    listen    81;       #侦听81端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    server_name  8.142.44.77;             #域名
    
    #【代理】特殊配置
	location /prod-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://8.142.44.77:8081/;	#后端访问地址
		}
    
    # 定义首页索引目录和名称
    location / {
        root   /usr/share/nginx/html;
        try_files $uri $uri/ /index.html;
    }

    #重定向错误页面到 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  • 3.html目录存放前端代码dist下的文件

4)启动容器

docker run --name ruoyiweb -d -p 81:81 \
-v /monkey/ruoyiweb/html:/usr/share/nginx/html \
-v /monkey/ruoyiweb/config/nginx.conf:/etc/nginx/nginx.conf \
-v /monkey/ruoyiweb/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /opt/projectTest/nginx/logs:/var/log/nginx/ \
--privileged=true nginx

# 说明
	docker run 
    --detach 
    --name test-nginx 
    -p 443:443   #无认证不写
    -p 81:81
    #映射html
    -v /home/nginx/html:/usr/share/nginx/html
    #映射nginx.conf文件
    -v /home/nginx/config/nginx.conf:/etc/nginx/nginx.conf/ 
    #映射default.conf文件
    -v /home/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf 
    #映射log目录
    -v /home/nginx/logs:/var/log/nginx/ 
    #映射ssl目录
    -v /home/nginx/ssl:/ssl/	#无认证不写
    -d nginx

6.vue部署第二种方式

1)文件目录

docker
   |
   |—— dist   			//代码
   |
   |—— Dockerfile		//vue配置
   |
   |—— nginx.conf		//nginx配置
   |
   |—— buildImages.sh
  • 1.nginx.conf配置文件
server {
    listen    80;       #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    #listen    443 ssl;
    server_name  8.142.44.77;             #域名

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

   # ssl_certificate      /ssl/server.crt;
    #ssl_certificate_key  /ssl/server.key;

    #ssl_session_cache    shared:SSL:1m;
    #ssl_session_timeout  5m;

    #ssl_ciphers  HIGH:!aNULL:!MD5;
    #ssl_prefer_server_ciphers  on;    

    #root /usr/share/nginx/html; 
    #index index.html index.htm; 
    #location / { 
    #    try_files $uri $uri/ /index.html; 
    #}
    
    # 定义首页索引目录和名称
    location / {
        root   /usr/share/nginx/html;
        try_files $uri $uri/ /index.html;
    }

    #定义错误提示页面
    #error_page  404              /404.html;

    #重定向错误页面到 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  • 2.Dockerfile配置文件
FROM nginx
add dist /usr/share/nginx/html/
add nginx.conf /etc/nginx/conf.d

2)执行打包命令(要进入配置文件目录下)

docker build -t vuetest .
# -t 是给镜像取名。
# 最后有一个点 “.”,表示使用当前路径下的 dockerfile 文件,也可以指定使用其它路径的。

3)查看docker镜像中是否有刚打包好的镜像

docker images

4)运行docker镜像

docker run -p 81:80 -d --name vuetest vuetest  
# -p :配置端口映射,格式是外部访问端口:容器内端口
# -d :后台运行  
# --name : 给容器取名
# 最后有 2 个 sm-web,前面一个是给容器取的名字,后面一个是使用的镜像的名字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,Docker镜像的部署方式可以分为以下几个步骤: 1. 安装Docker:首先需要在系统上安装Docker,可以参考引用\[2\]中的文章目录中的Docker安装部分。 2. 获取镜像文件:根据需要部署的应用程序,可以从Docker Hub或其他镜像仓库获取相应的镜像文件。引用\[1\]和引用\[2\]中的文章目录提供了一些常见的镜像部署示例,如MySQL、Tomcat、Redis等。 3. 部署镜像:使用Docker命令或Docker Compose等工具,将获取到的镜像文件部署Docker容器中。具体的部署步骤可以参考引用\[1\]和引用\[2\]中的文章目录中的部署镜像部分。 需要注意的是,根据引用\[3\]的内容,在Windows系统上的Docker Desktop可能无法成功运行Canal,而在服务器上可以成功运行。如果遇到问题,可以参考官方文档或者寻求专业人士的帮助。 总结起来,Docker镜像的部署方式包括安装Docker、获取镜像文件和部署镜像到Docker容器中。具体的步骤可以根据需要部署的应用程序和系统环境进行调整。 #### 引用[.reference_title] - *1* *3* [Docker部署镜像(二)](https://blog.csdn.net/qq905855661/article/details/123984644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Docker部署镜像(一)](https://blog.csdn.net/qq905855661/article/details/123965291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值