docker搭建rabbitmq、redis、mysql、nginx单机环境

一、Docker部署rabbitmq

 

1、准备docker环境:
# yum  -y  install  docker

# docker ps

@如果有输出
CONTAINER ID   IMAGE  COMMAND  CREATED                    PORTS      
证明已经安装完毕。

2、部署外网环境

2.1、搜索rabbitmq镜像:

#docker  search  rabbitmq

2.2、下载rabbitmq镜像,选择一个有web管理和MQTT镜像

#docker  pull letsxo/rabbitmq

2.3、查看镜像文件

#docker images

2.4、创建容器

#docker run -d  -p 5671:5671 -p 5672:5672  -p 15672:15672 -p 15671:15671  -p 25672:25672  -v /data/rabbitmq-data/:/var/rabbitmq/lib  --name rabbitmq   letsxo/rabbitmq

命令注释:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
-net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
-v 文件卷映射(主机(宿主)文件夹路径:容器文件夹路径)

2.5、查看已经运行的容器

#docker ps

2.6、web管理:通过访问本机的15672端口访问web管理端:http://本机ip:15672

3、部署内网机器

3.1、首先需要下载,rabbitmq的镜像,一是在网上直接下载(太慢了);二是直接找一台能上外网带docker环境的机器,使用docker pull下载。

# docker search  rabbitmq
# docker pull letsxo/rabbitmq
# docker images
letsxo/rabbitmq latest 93a7eefb0865 2 weeks ago         38.6MB
# docker save  93a7eefb0865 > rabbitmq.tar

3.2、将rabbitmq.tar拷贝到内网服务器:

# scp –P port rabbitmq.tar  user@ip:path
如果是默认的22端口,-P就不用了。
在内网服务器上将拷贝来的rabbitmq.tar文件导入为镜像:
# docker load < rabbitmq.tar

3.3、打标签:

# docker tag   93a7eefb0865  rabbitmq:cuishuai

3.4、创建并运行容器:

# docker run -d  -p 5671:5671 -p 5672:5672  -p 15672:15672 -p 15671:15671  -p 25672:25672  -v /data/rabbitmq-data/:/var/rabbitmq/lib  --name rabbitmq   93a7eefb0865

4、     Web端配置rabbitmq:

4.1、rabbitmq默认创建了guest/guest用户,使用此用户不安全。需要修改密码,及创建新的用户。

1)登陆后你如图所示的步骤进行操作来添加新用户:

docker搭建rabbitmq、redis、mysql、nginx单机环境_第1张图片

 

2)修改密码:

docker搭建rabbitmq、redis、mysql、nginx单机环境_第2张图片

修改密码和权限按1->2->3来完成;4是用来删除用户的。

3)创建vhost,按如图1->2->3->4来完成:

docker搭建rabbitmq、redis、mysql、nginx单机环境_第3张图片

将创建的vhost应用到用户,在首页的用户名上单击用户名进入如图所示的界面:

docker搭建rabbitmq、redis、mysql、nginx单机环境_第4张图片

4)创建policy

docker搭建rabbitmq、redis、mysql、nginx单机环境_第5张图片

注:
rabbitmq的数据库名称规则是,NODENAME@hostname,Docker每次从Docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定--hostname=rabbitmqhostone,这样docker环境启动后rabbitmq就会一直读取固定目录中的数据了

二、docker部署redis

1、搜索redis镜像

#docker search redis
2、下载redis镜像
#docker pull redis
3、创建redis容器
原有命令
#docker run -d -p 6379:6379 -v $PWD/data:/data  --name myredis redis redis-server --appendonly yes
修改后命令
#docker run -d -p 6379:6379 -v E:/mywork/docker/redis_data:/data --name myredis -h redis1 redis redis-server --appendonly yes
命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
4、查看容器启动情况
#docker ps
5、连接、查看容器

三、docker安装mysql

1、查看镜像

#docker search mysql

2、下载镜像

#docker pull mysql:5.6.35

3、创建mysql容器

原有命令
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.35
修改后命令
docker run -d -p 3306:3306 --name mymysql -v E:/mywork/docker/mysql_data/conf:/etc/mysql/conf.d -v E:/mywork/docker/mysql_data/logs:/logs -v E:/mywork/docker/mysql_data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.35 -h mysql1

命令说明:
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /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 用户的密码。
4、查看容器启动情况
#docker ps

四、docker安装nginx

1、搜索nginx
#docker search nginx
2、下载nginx镜像
#docker pull nginx
3、创建nginx容器
#docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx
命令说明:
-p 80:80:将容器的80端口映射到主机的80端口
--name mynginx:将容器命名为mynginx
-v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
-v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs
4、查看容器启动情况
#docker ps

五、docker不能使用vim怎么破

这很简单,两条命令,
1.apt-get update
2.apt-get install vim
只不过,在执行第一条命令的时候,会失败,因为默认的下载的地址是海外的,会网速慢或者下载失败,所以我们移步国内镜像源(以下代码复制到你的命令行下):

mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo “deb http://mirrors.163.com/debian/ jessie main non-free contrib” >> /etc/apt/sources.list
echo “deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib” >>/etc/apt/sources.list
echo “deb-src http://mirrors.163.com/debian/ jessie main non-free contrib” >>/etc/apt/sources.list
echo “deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib” >>/etc/apt/sources.list
#更新安装源
apt-get update

然后在执行第二条命令就可以了QAQ!

你可能感兴趣的:(docker)