第三节:在docker容器中部署Redis、Nginx、MySQL
一. 部署Redis
1. 去 https://hub.docker.com/ 中搜索Redis镜像,查看相关版本
2. 下载5.0版本的镜像
docker pull redis:5.0
3. 构建容器,并做端口映射
docker run -id --name=myredis -p 6379:6379 redis:5.0
PS: 6379是redis的默认端口,这里将容器内redis的6379端口和宿主机的6379端口进行映射。
4. 使用Redis客户端进行访问
在Redis目录下运行链接指令:
--win下的连接 redis-cli.exe -h xxx.xx.xx.xxx -p 6379 --Linux下连接(多了 ./ 表示当前目录) ./redis-cli.exe -h xxx.xx.xx.xxx -p 6379 --含密码 ./redis-cli.exe -h xxx.xx.xx.xxx -p 6379 -a 123456
运行结果如下图,进行数据的存储和读取。
windows下用用命令连接:(win下是3.2版本)
window下UI客户端连接:
Linux下用命令连接:
二. 部署Nginx
1. 下载Nginx最新镜像
docker pull nginx
2. 在宿主机(Linux主机)中准备对应的目录和Nginx所需的配置文件
(1).在工作目录(root)下,创建对应的目录和文件
# 在/root目录下创建nginx目录用于存储nginx数据信息 mkdir ~/nginx cd ~/nginx mkdir conf cd conf # 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容 vim nginx.conf
如下图
(2). 把下面的配置文件复制到 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; }
PS:上述文件在宿主机中创建,然后创建容器的时候进行二者的目录挂在,也就相当于在容器内对应的目录下创建了。
3. 构建容器,并做端口映射
运行指令: 一定在 /root/nginx目录下运行下面指令
docker run -id --name=my_nginx \ -p 8055:80 \ -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \ -v $PWD/logs:/var/log/nginx \ -v $PWD/html:/usr/share/nginx/html \ nginx
如下图:
解释:
-p 8055:80:将容器的 8055端口映射到宿主机的 80 端口。
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf (配置目录)
-v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx (日志目录)
-v $PWD/html:/usr/share/nginx/html:将主机当前目录下的html 目录挂载到容器的//usr/share/nginx/html (存放项目的目录)
$PWD代表当前目录,并且上述指令一定在 /root/nginx目录下运行下面指令。
4. 进入宿主机中/root/nginx/html目录
新建一个 index.html文件,输入welcom to nginx,进行保存。
5. 外部访问
三. 部署MySQL
1. 下载MySQL5.7版本镜像
docker pull mysql:5.7
2. 在宿主机上创建目录,用于进行数据卷挂载
在工作目录(/root/)下创建一个mysql文件夹,并进入该文件夹内。
3. 构建容器,并进行端口映射和目录挂载
在/root/mysql目录下运行下面指令:
docker run -id \ -p 3307:3306 \ --name=c_mysql \ -v $PWD/conf:/etc/mysql \ -v $PWD/logs:/var/log/mysql \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
如图:
解释:
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。 (正常情况下容器端口和宿主机端口是设置一样的,都是3306,也就是mysql的默认端口,这里设置3307只是为了区分而已)
-v $PWD/conf:/etc/mysql:将主机当前目录下的 conf文件 挂载到容器的 /etc/mysql(配置目录)
-v $PWD/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql。(日志目录)
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。(数据目录)
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
4. 使用客户端进行连接
进行连接:
连接成功:
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。