Docker部署Mysql, Tomcat, Nginx, Redis

1. Mysql部署

问题及解决方案

  1. 容器内的网络和外部机器不能直接通信

  2. 外部机器和宿主机可以直接通信

  3. 宿主机和容器可以直接通信

  4. 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口撒谎那个。外部机器访问宿主机的该端口,从而间接访问容器的服务。(这种操作称为端口映射)

#搜索mysql镜像
docker search mysql
#拉取mysql镜像
docker pull mysql:5.6
#在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-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

参数说明

  1. -p 3307:3306 :将容器的3306端口映射到宿主机的3307端口

  2. -v $pwd/conf:/etc/mysql/conf.d : 将宿主机当前目录下的conf/mt.cnf 挂载到容器的 /etc/mysql/conf.d/my.cnf 配置目录

  3. -v $pwd/logs:/logs : 将主机当前目录下的logs目录挂载到容器的/logs目录

  4. -v $pwd/data:/var/lib/mysql : 将主机当前目录下的data目录挂载到容器的/var/lib/mysql数据目录

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

2. Tomcat部署

 

#搜索mysql镜像
docker search tomcat
#拉取mysql镜像
docker pull tomcat
#在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id \
-p 8080:8080 \
--name=c_tomcat \
-v $pwd:/usr/local/tomcat/webapps \
tomcat

 

3. Nginx部署

#搜索mysql镜像
docker search nginx
#拉取mysql镜像
docker pull nginx
#在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
docker run -id \
-p 80:80 \
--name=c_nginx \
-v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf \ #这个文件需要提前准备好
-v $pwd/logs:/var/log/nginx \
-v $pwd/html:/usr/share/nginx/html \
nginx

4. Redis部署

#搜索mysql镜像
docker search redis
#拉取mysql镜像
docker pull redis:5.0
#创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
#使用外部机器windows来接redis
redis-cli.exe -h 192.168.149.135 -p 6379

 

posted @ 2020-03-23 17:12  风雨长安  阅读(574)  评论(0编辑  收藏  举报
博客