侧边栏壁纸
博主头像
憨憨大头个人博客博主等级

心存希冀,目有繁星

  • 累计撰写 110 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Docker 应用部署

Administrator
2024-08-03 / 0 评论 / 0 点赞 / 9 阅读 / 6163 字

一、部署MySQL

  1. 搜索mysql镜像
docker search mysql
  1. 拉取mysql镜像
docker pull mysql:5.6
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql

进入conf目录新增my.cnf文件

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

docker run -itd \
-p 3306:3306 \
--name=mysql \
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf \
-v $PWD/logs:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7
  • 参数说明:
    • -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
    • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
    • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
    • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
    • **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
  1. 进入容器,操作mysql
docker exec -it mysql /bin/bash

二、部署Tomcat

  1. 搜索tomcat镜像
docker search tomcat
  1. 拉取tomcat镜像
docker pull tomcat
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -d --name=tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat 
  • 参数说明:

    • **-p 8080:8080:**将容器的8080端口映射到主机的8080端口

      **-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps

  1. 使用外部机器访问tomcat

三、部署Nginx

安装完成之后进行测试:

 sudo docker run --name nginx-test -p 80:80 -d nginx

  1. 搜索nginx镜像
docker search nginx
  1. 拉取nginx镜像
docker pull nginx
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim 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 / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html  
	    root /etc/nginx/html/dist;
	    index  index.html index.htm;
	}
    location /api/ {
        proxy_set_header Host $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://113.125.115.106:8081/;
    }
    }
 }

server块设置

server {
        listen       80;
        server_name  localhost;
 
        charset utf-8;
    location / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html  
        root C:\foo;
        index  index.html index.htm;
    }

location / {
   root   html/dist;		    				# 服务的根目录,这里配置刚才的打包文件名称
   index  index.html index.htm;		    			# 服务默认启动的主文件,可以写多个
}
location /api/ {
   proxy_pass  https://XXXXXXX; # 配置自己后台访问的ip端口或域名
   proxy_set_header Host $host:$server_port;
}
error_page  404               /index.html;   # 这行为了解决前端路由配置的是history的问题,如果是hash则不需要
docker run -itd \
 --name nginx1 \
 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v $PWD/html:/etc/nginx/html \
 -v $PWD/log:/var/log/nginx/ \
 -p 80:80 \
  nginx

  • 参数说明:
    • -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
    • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
    • -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
  1. 使用外部机器访问nginx

四、部署Redis

  1. 搜索redis镜像
docker search redis
  1. 拉取redis镜像
docker pull redis:5.0
  1. 创建容器,设置端口映射
docker run -id --name=redis -p 6379:6379 redis:5.0 --requirepass 123456
  1. 使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379 
0

评论区