Docker下安装emq

betball贝博app 日记 337 次浏览 没有评论

安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2
#设置docker源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce -y

#安装指定版本docker-ce可使用以下命令查看
yum list docker-ce.x86_64  --showduplicates | sort -r

# 安装完成之后可以使用命令查看
docker version

#配置镜像加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://阿里云分配.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

通过 Docker Hub 获取 emq镜像

$ docker pull emqx/emqx:v3.1.0
启动
如果需要docker之间连接,先跳过这一步
$ docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.1.0

能访问了。

一样的方法,搭建了mysql,但是访问不了。

给容器之间设置网络先把所有的都停掉

docker kill

创建网络

docker network create netmqtt

查看网络 用ifconfig也能看到

docker network inspect net01

这一段方法不对

重新运行两个容器

不正确,直接加-net的话运行不起来

docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.1.0 --net=netmqtt

docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --net=netmqtt

正确的方法为先运行起来以后,再通过命令连接网络

将containerID接入bridgeName网桥

docker network connect bridgeName ContainerID

将containerID断开bridgeName网桥

docker network disconnect bridgeName ContainerID

进入docker中执行命令

docker exec -it containerID sh //sh如果换成单条命令比如ls可以只运行一条

查看日志 $ sudo docker logs -f -t --tail 行数 容器名

某些docker运行时需要定义常量,如mysql的root密码,需要-e MYSQL_ROOT_PASSWORD=123456

发表评论

邮箱地址不会被公开。

Go