Docker Desktop 安装教程和最佳实践

Docker Desktop = Docker Engine(核心) + Docker CLI(命令行) + 可视化界面 + 一些额外工具(包括Compose、Kubernetes等)

所以安装 Docker Desktop 后,你不需要再单独安装 Docker。你可以使用Docker的命令行,也可以使用GUI管理。

一、安装

https://www.docker.com/ 打开官网下载安装包:

这里就是选这两个:

后面基本上就是能跳过的跳过,最后启动:

1.1 启动可能遇到的问题

1,WSL needs updating

WSL就是Windows里面跑个Linux,因为Docker是基于linux跑的,所以对WSL版本有要求。

如果可以的话,就直接更新windows,好像就可以了。如果不想更新的话,就更新WSL。

步骤:

打开Powershell

输入:

wsl --update --web-download

等他加载完重启个电脑就行了。

2,Virtualization support not detected

这种就是虚拟化没打开。解决步骤:

Win + R。输入optionalfeatures

然后把Hyper-V勾上,重启电脑即可。

1.2 基本配置

正常启动之后,我们要进行一些配置,方便后续的使用。

1.2.1 配置镜像源

下载镜像很容易失败,可以通过修改镜像源来加快下载速度

{

"builder": {

"gc": {

"defaultKeepStorage": "20GB",

"enabled": true

}

},

"experimental": true,

"registry-mirrors": [

"https://docker.m.daocloud.io",

"https://mirror.iscas.ac.cn",

"https://docker.nju.edu.cn",

"https://mirror.aliyuncs.com"

]

}

如果镜像源不想换,或者换了发现还是下载不下来,可以试试配置代理:

1.2.2 配置代理

1.2.3 汉化

(也可以不搞)

看一下右下角你的版本号:

打开:https://github.com/asxez/DockerDesktop-CN/releases

下载相应的版本、系统的包即可,windows一般下载:app-Windows-x86.asar就可以了。

打开文件夹:

C:\Program Files\Docker\Docker\frontend\resources

把下载的 app-Windows-x86.asar 丢进去,替换掉原来的 app.asar,重启desktop就行了:

1.3 验证

打开CMD,输入

docker version

这样就是OK了。

二、启动示例

MYSQL

下载镜像

MYSQL相对没什么可配置的:

直接挂载,然后设置默认的root密码即可。然后启动即可。

MINIO

还是一样下载镜像

前面说了docker desktop也包含了docker,你可以用可视化desktop弄,也可以直接cmd启一个命令行 docker pull。

启动容器也是可视化和命令行都行,但是因为minio比较多东西要配置,所以我选择用命令行:

启动命令:

docker run -d --name minio -p 10000:9000 -p 10001:9001 -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=zhengan123" -v D:\docker\minio\data:/data minio/minio:RELEASE.2025-04-22T22-12-26Z server /data --console-address ":9001"

这里是做了10000和10001的映射,账号密码是admin和zhengan123。挂载是做的 D盘里面。

可以看到右边的容器同步也多了一个minio。

访问 MinIO Console

新建个桶,可以看到挂载目录也有了:

三、最佳实践

但其实如果大家只是用来一两个镜像run一下测试,其实上面就很方便了。但如果要集中管理数十个镜像,我们不可能去每个命令、映射关系什么的记过去。所以正常来说我们会使用

docker compose

它也已经集成在docker desktop 里面了。用起来也非常简单,创建一个文件:

docker-compose.yml

在什么目录下都行。但是最好集中一点

我们以3个镜像为例,分别是 redis \ mysql \ minio :

version: '3.8'

services:

redis:

image: redis:7.2.11

container_name: redis

restart: unless-stopped

ports:

  • "6379:6379"

volumes:

  • D:\docker\redis\data:/data

  • D:\docker\redis\conf\redis.conf:/usr/local/etc/redis/redis.conf

一定要加这行,否则 redis.conf 不会被应用

command: ["redis-server", "/usr/local/etc/redis/redis.conf"]

mysql:

image: mysql:8.0.43

container_name: mysql

restart: unless-stopped

ports:

  • "3306:3306"

environment:

  • MYSQL_ROOT_PASSWORD=zhengan123

  • MYSQL_DATABASE=myapp

volumes:

  • D:\docker\mysql\data:/var/lib/mysql

minio:

image: minio/minio:RELEASE.2025-04-22T22-12-26Z

container_name: minio

restart: unless-stopped

ports:

  • "9000:9000"

  • "9001:9001"

environment:

  • MINIO_ROOT_USER=admin

  • MINIO_ROOT_PASSWORD=zhengan123

command: server /data --console-address ":9001"

volumes:

  • D:\docker\minio\data:/data

分别都指定了他们的镜像版本、挂载目录、基本配置等。

其中redis.conf为:

########################################

Redis 基础配置

########################################

监听地址(仅允许容器内访问,可根据需要改为 0.0.0.0)

bind 0.0.0.0

端口号

port 6379

密码

requirepass zhengan123

是否守护进程运行(Docker 环境必须为 no)

daemonize no

数据目录(与 docker-compose 中的 /data 对应)

dir /data

########################################

持久化配置

########################################

快照保存规则(RDB)

save <seconds> <changes>

save 900 1

save 300 10

save 60 10000

RDB 文件名

dbfilename dump.rdb

AOF 日志(推荐在生产中开启)

appendonly yes

appendfilename "appendonly.aof"

每次写命令都 fsync(always) 性能差,建议 everysec

appendfsync everysec

########################################

网络与安全

########################################

禁止危险命令(可选,防止误删)

rename-command FLUSHALL ""

rename-command FLUSHDB ""

rename-command CONFIG ""

允许的最大客户端连接数

maxclients 10000

超时(秒)

timeout 300

########################################

内存管理

########################################

最大内存(根据实际机器内存设置)

例如限制为 512MB

maxmemory 512mb

淘汰策略(常用:volatile-lru、allkeys-lru、noeviction)

maxmemory-policy allkeys-lru

########################################

日志

########################################

日志级别:debug | verbose | notice | warning

loglevel notice

日志文件(Docker 中通常写到 stdout)

logfile ""

########################################

其他可选优化

########################################

禁止 Redis 主动写入 swap,提升性能(仅 Linux 有效)

no-appendfsync-on-rewrite yes

打开cmd,切到你的yml的目录下。运行非常简单,就一行

docker compose up -d

cmd就可以关了。

可以看到容器都正常启动了:

基本上流程就是,可以先pull单个镜像用着,等确认要长久使用和维护映射目录了,就写进yml里面统一管理。

相关推荐
摘星编程6 小时前
openGauss 快速上手:CentOS 环境下单机部署完整指南
linux·运维·centos
大喵桑丶11 小时前
中间件快速部署(Nginx,Keepalived)
运维·nginx·中间件
hanyi_qwe12 小时前
文本三剑客--awk
linux·运维·服务器
Caven7712 小时前
【Linux 技巧】如何在登录时自动激活 Conda Base 环境
linux·运维·conda
哈里谢顿12 小时前
Docker 中快速启动 Prometheus + Grafana操作指南(二)
docker
凌寒1112 小时前
Linux(Debian)安装、卸载 MySQL
linux·运维·mysql·debian
victory043112 小时前
K8S containerd 打包镜像和部署流程和注意事项
云原生·容器·kubernetes
云飞云共享云桌面13 小时前
如何降低非标自动化工厂的研发软件采购成本
运维·服务器·网络·数据库·性能优化·自动化
七七墨染13 小时前
DotMemory系列:5. 如何实现自动化抓取和应用自托管
运维·c#·自动化
泰克教育官方账号13 小时前
泰涨知识 | 什么是自动化巡检?
运维·服务器·数据库