# 安装相关
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 |