Docker 相关

8/4/2025 docker

# 安装相关

Docker Desktop for Windows (opens new window)

史上最全(全平台)docker安装方法 (opens new window)

【Windows】旧版 WSL 的手动安装步骤(不装 Docker Desktop 会启动失败) (opens new window)

# 常用后台服务挂载命令

# Redis

docker run -d --name redis -p 6379:6379 --restart always redis

docker 安装 redis 并配置 redis.conf(默认没有) (opens new window)

# Rabbitmq

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 --restart always rabbitmq
docker run -d --name rabbitmq --restart=always --name rabbitmq_management -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest rabbitmq:management # 这个可以进ui界面

# Zookeeper

docker run --name zookeeper -d -p 2181:2181 --restart always zookeeper

# Emqx

docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 --restart always emqx/emqx:latest

# Mongodb

docker run --name mongo -d -p 27017:27017 -v /Users/[YourUsername]/db:/data/db --restart always mongo

# PostgreSQL

docker run --name postgres -e POSTGRES_DB=admin_dashboard -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:15

# Mysql

# -e MYSQL_DATABASE=testdb -v mysql_data:/var/lib/mysql
docker run -d --name mysql-local -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

# Docker 基本命令

Docker基础篇 - (二)Docker的常用命令 (opens new window)

docker | Docker Documentation (opens new window)

docker version    # 显示docker的版本信息。
docker info       # 显示docker的系统信息,包括镜像和容器的数量
docker [命令] --help # 帮助命令

docker images # 查看所有镜像
docker search [镜像名称] # 搜索镜像
docker pull [镜像名称] # 下载镜像
docker rmi [镜像名称] # 删除镜像
##### 以下是容器运行(基于镜像)命令,先有镜像才有容器
docker run [可选参数] image

###### 参数说明
--name = "Name"    容器名字  tomcat01,tomcat02,用来区分容器
-d                 后台方式运行
-it                使用交互方式运行,进入容器查看区分
-p                 指定容器的端口 -p 8080:8080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P                 随机指定端口
######

docker ps # 列出所有容器


# Docker 清理容器日志脚本

#!/bin/bash
logs=$(find /vol/docker/containers/ -name *-json.log)
for log in $logs
do
        echo "clean logs : $log"
        cat /dev/null > $log
done

echo "======== end clean docker containers logs ========"
~

# docker 常用的网络模式有哪些?

网络模式 特点 适用场景 示例命令
Bridge 默认通过 docker0 网桥通信,NAT 转发,容器间通过 IP 互通 单机多容器开发环境 docker run -d --name my_container -p 8080:80 nginx
Host 直接共享主机网络,无隔离,高性能 需高性能或直接使用主机端口的场景 docker run -d --name my_container --network host nginx
None 无网络配置,完全隔离 安全测试或离线数据处理 docker run -d --name my_container --network none alpine sleep 3600
Overlay 跨主机通信,基于 VXLAN,适用于集群 Docker Swarm/Kubernetes 集群 docker network create -d overlay my_net
docker service create --network my_net nginx
Macvlan 为容器分配独立 MAC 地址,直接接入物理网络 容器需作为物理网络设备 docker network create -d macvlan --subnet=192.168.1.0/24 -o parent=eth0 my_macvlan
docker run --network my_macvlan -d nginx
IPvlan 类似 Macvlan,但共享 MAC 地址,通过不同 IP 区分 避免 MAC 地址泛滥的网络环境 docker network create -d ipvlan --subnet=192.168.1.0/24 -o parent=eth0 my_ipvlan
自定义桥接 用户自定义桥接网络,支持 DNS 自动解析容器名 单机内容器需通过名称通信(如微服务) docker network create my_bridge
docker run -d --name web --network my_bridge nginx