zoukankan      html  css  js  c++  java
  • 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链接测试

    链接成功!

  • 相关阅读:
    STL源码剖析之_allocate函数
    PAT 1018. Public Bike Management
    PAT 1016. Phone Bills
    PAT 1012. The Best Rank
    PAT 1014. Waiting in Line
    PAT 1026. Table Tennis
    PAT 1017. Queueing at Bank
    STL源码剖析之list的sort函数实现
    吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3
    cJSON
  • 原文地址:https://www.cnblogs.com/baidawei/p/13595430.html
Copyright © 2011-2022 走看看