zoukankan      html  css  js  c++  java
  • 第三节:在docker容器中部署Redis、Nginx、MySQL

    一. 部署Redis

    1. 去 https://hub.docker.com/ 中搜索Redis镜像,查看相关版本

     

     2. 下载5.0版本的镜像

    docker pull redis:5.0

    3. 构建容器,并做端口映射

    docker run -id --name=myredis -p 6379:6379 redis:5.0

    PS: 6379是redis的默认端口,这里将容器内redis的6379端口和宿主机的6379端口进行映射。

    4. 使用Redis客户端进行访问

    在Redis目录下运行链接指令:

    --win下的连接
    redis-cli.exe -h xxx.xx.xx.xxx -p 6379
    --Linux下连接(多了 ./ 表示当前目录)
    ./redis-cli.exe -h xxx.xx.xx.xxx -p 6379
    --含密码
    ./redis-cli.exe -h xxx.xx.xx.xxx -p 6379 -a 123456

    运行结果如下图,进行数据的存储和读取。

    windows下用用命令连接:(win下是3.2版本)

     window下UI客户端连接:

     

    Linux下用命令连接:

    二. 部署Nginx

    1. 下载Nginx最新镜像

    docker pull nginx

    2. 在宿主机(Linux主机)中准备对应的目录和Nginx所需的配置文件

    (1).在工作目录(root)下,创建对应的目录和文件

    # 在/root目录下创建nginx目录用于存储nginx数据信息
    mkdir ~/nginx
    cd ~/nginx
    mkdir conf
    cd conf
    # 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
    vim nginx.conf

    如下图

    (2). 把下面的配置文件复制到 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;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    View Code

    PS:上述文件在宿主机中创建,然后创建容器的时候进行二者的目录挂在,也就相当于在容器内对应的目录下创建了。

    3. 构建容器,并做端口映射

    运行指令: 一定在 /root/nginx目录下运行下面指令

    docker run -id --name=my_nginx 
    -p 8055:80 
    -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf 
    -v $PWD/logs:/var/log/nginx 
    -v $PWD/html:/usr/share/nginx/html 
    nginx

    如下图:

    解释:

    -p 8055:80:将容器的 8055端口映射到宿主机的 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    (日志目录)

    -v $PWD/html:/usr/share/nginx/html:将主机当前目录下的html 目录挂载到容器的//usr/share/nginx/html    (存放项目的目录)

    $PWD代表当前目录,并且上述指令一定在 /root/nginx目录下运行下面指令。

    4. 进入宿主机中/root/nginx/html目录

     新建一个 index.html文件,输入welcom to nginx,进行保存。

    5. 外部访问

     

    三. 部署MySQL

    1. 下载MySQL5.7版本镜像

    docker pull mysql:5.7

    2. 在宿主机上创建目录,用于进行数据卷挂载

     在工作目录(/root/)下创建一个mysql文件夹,并进入该文件夹内。

     

     3. 构建容器,并进行端口映射和目录挂载

      在/root/mysql目录下运行下面指令:

    docker run -id 
    -p 3307:3306 
    --name=c_mysql 
    -v $PWD/conf:/etc/mysql 
    -v $PWD/logs:/var/log/mysql 
    -v $PWD/data:/var/lib/mysql 
    -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql:5.7

    如图:

     解释:

    -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。 (正常情况下容器端口和宿主机端口是设置一样的,都是3306,也就是mysql的默认端口,这里设置3307只是为了区分而已)

    -v $PWD/conf:/etc/mysql:将主机当前目录下的 conf文件 挂载到容器的 /etc/mysql(配置目录)

    -v $PWD/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql。(日志目录)

    -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。(数据目录)

    -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

    4. 使用客户端进行连接

    进行连接:

     

     连接成功:

     

    !

    • 作       者 : Yaopengfei(姚鹏飞)
    • 博客地址 : http://www.cnblogs.com/yaopengfei/
    • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
    • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
     
  • 相关阅读:
    【leetcode】剑指 Offer 07. 重建二叉树
    【leetcode】剑指 Offer 59
    【leetcode】717. 1比特与2比特字符
    【leetcode】67. 二进制求和
    【leetcode】258. 各位相加
    文件管理(高级)
    文件管理(基础)
    python之模块与类库
    python之对象与类
    python之迭代器
  • 原文地址:https://www.cnblogs.com/yaopengfei/p/13630267.html
Copyright © 2011-2022 走看看