Docker部署Mysql, Tomcat, Nginx, Redis
1. Mysql部署
问题及解决方案
-
容器内的网络和外部机器不能直接通信
-
外部机器和宿主机可以直接通信
-
宿主机和容器可以直接通信
-
当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口撒谎那个。外部机器访问宿主机的该端口,从而间接访问容器的服务。(这种操作称为端口映射)
#搜索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
参数说明
-
-p 3307:3306 :将容器的3306端口映射到宿主机的3307端口
-
-v $pwd/conf:/etc/mysql/conf.d : 将宿主机当前目录下的conf/mt.cnf 挂载到容器的 /etc/mysql/conf.d/my.cnf 配置目录
-
-v $pwd/logs:/logs : 将主机当前目录下的logs目录挂载到容器的/logs目录
-
-v $pwd/data:/var/lib/mysql : 将主机当前目录下的data目录挂载到容器的/var/lib/mysql数据目录
-
-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
你一定会喜欢那个因为喜欢她而发光的自己!
个人博客:http://www.yanghelong.top
个人博客:http://www.yanghelong.top