• Docker (3) 使用docker 安装mysql、tomcat、ngnix、redis


    mysql部署

    由于外部机器无法直接访问容器端口,但是可以访问到宿主机(服务器),所以需要做一个端口映射 3307(服务器的端口) 映射到容器的端口3306

      

       docker serach mysql
    
      docker pull mysql:5.6
    
      docker images
    
      REPOSITORY                TAG                 IMAGE ID            CREATED                     SIZE
    
      mysql                            5.6              f83a2938370c        10 months ago       452MB
    
      mkdir /root/mysql
    
      cd /root/mysql
    
      docker run -id -p 3307:3306 --name=c_mysql --privileged=true -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

      --privileged=true 因为Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示如下信息mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)

      -p 3307:3306 见上图,将linux服务器端口与容器3306端口关联 一般3306:3306

      $PWD 就是linux中的pwd 输出的当前地址拼接 因为当前地址是/root/mysql 所以以下拼接上开头

      -v $PWD/conf:/etc/mysql/conf.d 将主机当前目录下的conf/my.conf挂载到容器的/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密码

    进入容器

      docker exec -it c_mysql /bin/bash

    登录mysql 

       mysql -u root -p

    使用外部服务器连接mysql

     

    tomcat部署

    docker search tomcat
    
    docker pull tomcat
    
    mkdir /root/tomcat
    
    cd /root/tomcat

    是换行 为了显示更清晰

    docker run -id --name=c_tomcat 
    --privileged=true 
    -p 8080:8080 
    -v $PWD:/usr/local/tomcat/webapps 
    tomcat

    centos7都要加上--privileged=true  否则无法挂载成功没有权限

    -p 8080:8080 端口映射 宿主机和容器的端口绑定

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

    nginx部署

    docker pull nginx

    mkdir ~/nginx  --~是/root的意思简写

    cd ~/nginx

    mkdir conf

    cd conf

    vim 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;
    }
    cd..
    docker run -id --name=c_nginx --privileged=true -p 80:80 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -v $PWD/html:/usr/share/nginx/html nginx

    -id 后台运行 --name 起名字 --privileged centos7安全限制  -p 80:80 端口映射  nginx.conf 配置文件挂载  logs 日志文件挂载 html 项目部署目录挂载

    浏览器访问 http://10.211.55.4/ 出现403

    cd html
    
    vim index.html
    
    <h1>nginx</h1>
    
    :wq

    刷新页面 部署完毕

    redis部署

    docker pull redis:5.0
    
    docker run -id --name=c_redis -p 6379:6379 redis:5.0

    rdm链接测试

    链接成功!

  • 相关阅读:
    bug排查
    做接口测试没反应
    wcf配置文件
    mvc学习-编辑提交需要注意-mvc重点
    大批量导出思路
    进程基础知识
    (转)JMS事务
    (转)JMS简明学习教程
    (转)Linux下使用system()函数一定要谨慎
    LInux文件基础知识和文件目录操作(二)文件I/O操作
  • 原文地址:https://www.cnblogs.com/baidawei/p/13595430.html
Copyright © 2020-2023  润新知