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链接测试

链接成功!

 

posted @ 2020-09-01 13:47  海盗船长  阅读(308)  评论(0编辑  收藏  举报