第三节:在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;
}
View Code

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 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 

 

posted @ 2020-09-08 07:05  Yaopengfei  阅读(1383)  评论(10编辑  收藏  举报