安装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