sudo apt remove docker docker-engine docker.io containerd runc
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
sudo systemctl enable docker # 开机自启
sudo systemctl start docker # 立即启动
sudo systemctl status docker # 查看状态
目标:使用docker 安装rabbitmq,安装到/xxx/dockerApp文件夹中,数据挂载到/xxx/dockerData文件夹中
mkdir -p /xxx/dockerApp/rabbitmq
mkdir -p /xxx/dockerData/rabbitmq/{data,conf,log}
touch /xxx/dockerData/rabbitmq/conf/rabbitmq.conf
编辑配置文件
loopback_users.guest = false
进入应用目录并创建 docker-compose.yal
cd /xxx/dockerApp/rabbitmq
vim docker-compose.yml
编辑配置文件
services:
rabbitmq:
image: rabbitmq:3.12-management # 带管理界面的版本
container_name: rabbitmq
hostname: rabbitmq-host
restart: unless-stopped
ports:
- "5672:5672" # AMQP 协议端口
- "15672:15672" # 管理界面端口
volumes:
- /xxx/dockerData/rabbitmq/data:/var/lib/rabbitmq
- /xxx/dockerData/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
- /xxx/dockerData/rabbitmq/log:/var/log/rabbitmq
- /xxx/dockerData/rabbitmq/definitions/definitions.json:/etc/rabbitmq/definitions.json
environment:
- RABBITMQ_DEFAULT_USER=admin # 默认用户名
- RABBITMQ_DEFAULT_PASS=yourpassword # 默认密码
docker compose up -d
-d
表示后台运行sudo docker compose -f /xxx/dockerApp/rabbitmq/docker-compose.yml up -d
报错 Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
解决方法:给Docker配置一个代理
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890/"
Environment="HTTPS_PROXY=http://127.0.0.1:7890/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
sudo systemctl daemon-reload
sudo systemctl restart docker
docker ps -f name=rabbitmq
docker logs rabbitmq
宿主机路径 | 容器内路径 | 作用 |
---|---|---|
/xxx/dockerData/rabbitmq/data | /var/lib/rabbitmq | 存储队列和消息数据 |
/xxx/dockerData/rabbitmq/conf/rabbitmq.conf | /etc/rabbitmq/rabbitmq.conf | 自定义配置 |
/xxx/dockerData/rabbitmq/log | /var/log/rabbitmq | 日志文件 |
docker compose down
docker compose restart
rm -rf /xxx/dockerData/rabbitmq/data/*