栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker 部署应用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker 部署应用

一、部署 MySQL

需求:

​ 在 Docker 中创建一个 MySQL 容器,名为 c_name,宿主机中的端口 3306 与容器的端口 3306 相映射,并且将 MySQL 的配置文件和数据内容目录挂载到宿主机。

步骤:

  • 搜索 MySQL 容器

    docker search mysql
    
  • 拉取 MySQL 容器

    docker pull mysql:8
    

说明:

  • 这里选择 mysql 8 的版本。
  • 版本信息可以通过网址:https://hub.docker.com/ 查询。
  1. 先创建一个基本容器,主要是复制 mysql 的配置文件到宿主机中

    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
    
  2. 复制 mysql 容器的配置文件到宿主机

    mkdir -p ~/mysql/conf
    docker cp mysql:/etc/mysql/conf.d ~/mysql/conf/conf.d
    docker cp mysql:/etc/mysql/my.cnf ~/mysql/conf/my.cnf
    docker cp mysql:/etc/mysql/my.cnf.fallback ~/mysql/conf/my.cnf.fallback
    
  3. 删除该容器

    # 停止容器
    docker stop mysql
    # 删除容器
    docker rm mysql
    
  4. 重新创建新的容器,并且添加文件映射

    docker run 
    -p 3306:3306 
    --name=mysql 
    -v ~/mysql/conf/:/etc/mysql/ 
    -v ~/mysql/data:/var/lib/mysql 
    -v ~/mysql/mysql-files/:/var/lib/mysql-files 
    -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql:8.0
    
  5. 进入容器,登陆MySQL命令窗口,修改MySQL密码验证插件

    docker exec -it mysql /bin/bash
    mysql -uroot -p
    alter user 'root'@'%' identified with mysql_native_password by '123456';
    
  6. 在外部机器中连接 MySQL

    # 参数说明:地址  用户名  密码(小写p)  端口(大写P)
    mysql -h192.168.78.13 -uroot -p123456 -P3306
    

说明

  • 如果连接失败,需要开放宿主机的 3306端口。
二、部署 Tomcat

步骤:

  1. 下载 Tomcat 镜像

    docker pull tomcat:9.0
    
  2. 创建容器

    docker run -id 
    --name=tomcat 
    -p 8080:8080 
    -v /root/tomcat:/usr/local/tomcat/webapps 
    tomcat:9.0
    

    说明

    • 创建 Tomcat 容器之后,Tomcat 会自动启动。
  • 发布项目时只需要将项目放在宿主机的 /root/tomcat 目录下。
三、部署 Nginx

步骤:

  1. 下载 Nginx 镜像

    docker pull nginx:1
    
  2. 先创建一个基本容器,主要是复制 nginx 的配置文件到宿主机中

    docker run -d --name nginx nginx:1
    
  3. 拷贝容器内 Nginx 默认配置文件到 宿主机的 ~/nginx/ 目录

    mkdir -p ~/nginx/conf
    mkdir -p ~/nginx/html
    mkdir -p ~/nginx/logs
    docker cp nginx:/etc/nginx/nginx.conf ~/nginx/conf/
    docker cp nginx:/etc/nginx/conf.d ~/nginx/conf/
    docker cp nginx:/usr/share/nginx/html/ ~/nginx
    
  4. 停止并删除上面的容器

    docker stop nginx
    docker rm nginx
    
  5. 重新创建 nginx 容器

    docker run -id 
    -p 80:80  
    -p 443:443  
    --name=nginx 
    -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d 
    -v ~/nginx/html:/usr/share/nginx/html 
    -v ~/nginx/logs:/var/log/nginx 
    nginx:1
    
  6. 添加配置文件

    之后只需要在 ~/nginx/conf/conf.d 下创建新的 conf 文件即可。

    server {
        listen       80;
        server_name  clock.shijialeya.top;
    
        location / {
            proxy_pass http://www.shijialeya.top:9001/;
            proxy_read_timeout 600s;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_buffering    off;
            proxy_buffer_size  256k;
            proxy_buffers 100  256k;
            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
            proxy_max_temp_file_size 128m;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    

宿主机中操作 nginx:

  1. 停止容器中的 Nginx
docker stop nginx
  1. 启动容器中的 Nginx
docker start nginx
  1. 重启 Nginx
docker restart nginx
四、部署 Redis

步骤:

  1. 下载 redis 镜像

    docker pull redis:6
    
  2. 创建 redis 容器

    docker run -id --name=redis -p 6379:6379 redis:6 --requirepass 123456
    
  3. 连接 redis,在 windown 中打开小黑窗口

    # 进入到 redis 的目录,之后启动连接 redis,把 -h 后面的地址修改成自己的宿主机的地址
    redis-cli.exe -h 192.168.78.13 -p 6379 -a 123456
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号