Install
[参考](Windows | Docker Docs),此次记录环境为win11系统,使用的方式是WSL 2 backend,x86_64。
在该环境下安装较为简单:
- wsl --install --online 查看可以安装的系统
- wsl --install ubuntu 安装子系统,这里选择Ubuntu,也可以选择其他系统以及版本,安装完成后需要键入账户密码
- 双击exe安装,上述参考文档有下载链接
- 如有需要,可以更改本地存储位置setting -> Resource -> Advanced
PS : 如果wsl --install或者 --install --online显示访问不到时,可以修改hosts文件,添加185.199.111.133 raw.githubusercontent.com,或者直接施展魔法。
镜像源
pull镜像时失败,可以直接使用魔法,若是不想使用或者是无法使用,可以更换image
docker pull mysql:8 失败,镜像全路径为docker.io/library/mysql:8
docker pull docker.m.daocloud.io/library/mysql:8 从其他镜像站下载
docker tag docker.m.daocloud.io/library/mysql:8 mysql:8 重新tag
docker rmi docker.m.daocloud.io/library/mysql:8 清理不用的tag
docker images 查看镜像列表
MSSQL
参考:https://hub.docker.com/_/microsoft-mssql-server
启动MSSQL,Copy Run为以下内容
docker run
#以下三个为环境变量,其中为密码
--env=ACCEPT_EULA=Y
--env=MSSQL_SA_PASSWORD=xxxx
--env=MSSQL_PID=Express
#分别将数据文件和日志文件保留
--volume=E:\Docker\LOCAL_MSSQL\data:/var/opt/mssql/data
--volume=E:\Docker\LOCAL_MSSQL\log:/var/opt/mssql/log
#映射端口
-p 31433:1433
--name=LOCAL_MSSQL
-d mcr.microsoft.com/mssql/server:2019-latest
MongoDB
参考:
- https://www.mongodb.com/docs/manual/tutorial/install-mongodb-community-with-docker/
- https://hub.docker.com/r/mongodb/mongodb-community-server
docker run
#设置管理员用户密码(快被弃用)
--env=MONGO_INITDB_ROOT_USERNAME=xxx
--env=MONGO_INITDB_ROOT_PASSWORD=xxx
#将数据文件保留
--volume=E:\Docker\LOCAL_MONGO_6_0\data\configdb:/data/configdb
--volume=E:\Docker\LOCAL_MONGO_6_0\data\db:/data/db
#映射端口
-p 37017:27017
--name=LOCAL_MONGO_6_0
-d mongodb/mongodb-community-server:6.0.7-ubuntu2204
RabbitMQ With Management
docker以及配置参考:
- https://hub.docker.com/_/rabbitmq
- https://www.rabbitmq.com/configure.html
正式启动前,启动一个测试容器,将/etc/rabbitmq/中的文件保留,修改conf文件,修改内容参考配置
docker run
#保留数据文件
--volume=E:\Docker\LOCAL_RABBITMQ_3_11\log:/var/log/rabbitmq
--volume=E:\Docker\LOCAL_RABBITMQ_3_11\lib:/var/lib/rabbitmq
--volume=E:\Docker\LOCAL_RABBITMQ_3_11\config:/etc/rabbitmq
#映射部分端口
-p 15672:15672
-p 35672:5672
--name=LOCAL_RABBITMQ_3_11
-d rabbitmq:3.11-management
PS:不知为什么,部分页面会有报错
Redis
docker以及配置参考:
https://hub.docker.com/_/redis
- https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
- https://zhuanlan.zhihu.com/p/633374589
这里选用的是redis:latest,redis版本为7.0.12。
由于原镜像启动未指定配置文件,所以需要修改启动命令,Dockerfile如下:
FROM redis
CMD ["redis-server", "/etc/redis/redis.conf"]
#构建镜像
docker build -t redis-jennel ./
常规配置信息如下:
bind 0.0.0.0
protected-mode yes
requirepass xxx
port 6379
databases 16
docker run
#保留数据
--volume=E:\Docker\LOCAL_REDIS\data:/data
--volume=E:\Docker\LOCAL_REDIS\etc\redis:/etc/redis
#映射接口
-p 36379:6379
--name=LOCAL_REDIS
-d redis-jennel:latest
MySQL
参考:
https://hub.docker.com/_/mysql/
- https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html
启动容器
docker run
--env=MYSQL_ROOT_PASSWORD=xxx
--volume=E:\Docker\LOCAL_MYSQL\data:/var/lib/mysql
--volume=E:\Docker\LOCAL_MYSQL\config:/etc/mysql/conf.d/
--volume=E:\Docker\LOCAL_MYSQL\log:/var/log/mysql
-p 33306:3306
-p 33060:33060
--name=LOCAL_MYSQL
-d mysql:5
PostgreSQL
参考:
https://hub.docker.com/_/postgres
启动容器
docker run
--env=POSTGRES_PASSWORD=123456
--env=PGDATA=/var/lib/postgresql/data/pgdata
--volume=D:\Docker\LOCAL_PGSQL\data:/var/lib/postgresql/data
-p 35432:5432
--name=LOCAL_PGSQL
-d postgres:16
踩坑记录
安装
ps : 以下内容为旧电脑的安装踩坑记录
Windows系统开启WSL参考:https://learn.microsoft.com/en-us/windows/wsl/install
PS: 使用Hyper-V暂时未找到方法将docker镜像文件迁移出C盘的方法,改为使用WSL2
Windows10 版本1909 OS18363
安装参考:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
其中Step1&3,可在Windows功能中开启。
Step6,Ubuntu不能选用22.04(LTS),错误码0x80080204,后选用20.04。
PS: 实测,完成以上步骤之后docker desktop依旧无法使用WSL2,现更新系统为22H2 OS19045。
更新Windows后重新安装docker desktop,启动可看到两个勾选一个是WSL,一个是桌面快捷方式,勾选WSL即可使用WSL2。
在设置->Resource中变更存储位置。
设置docker desktop,参考:https://docs.docker.com/desktop/wsl/
(可选)
安装终端参考:https://learn.microsoft.com/zh-cn/windows/terminal/install
更新
以下为错误操作以及补救方法,亲测能够还原。
关于Docker Desktop的版本更新问题(最好是别更新)。更新出现问题,新安装之后启动失败,按照前人推荐,删除"C:\Users\%user%\AppData\Roaming\Docker"下的内容并重启。重启成功,但是原软件配置信息丢失。
由于配置信息丢失,原使用wsl设置的Disk Image Location地址变更,由于已存在旧文件夹,无法重新设置。之后利用wsl的备份进行修改,具体为:
- 备份数据wsl --export docker-desktop-data “指定目录\docker-desktop-data.tar”
- 删除原数据wsl --unregister docker-desktop-data
- 删除原数据文件夹
- 重启Docker Desktop,设置Resources -> Advanced -> Disk image location
- 停止Docker Desktop
- 删除新的空数据wsl --unregister docker-desktop-data
- 还原旧数据wsl --import docker-desktop-data “新设置的Disk image location地址” “备份地址\docker-desktop-data.tar” --version 2
- 重启Docker Desktop,删除旧数据备份文件
以下为猜测可行操作:
- 更新前,先到
"C:\Users%user%\AppData\Roaming\Docker"
下,备份配置文件settings.json(插件暂时不知能否备份) - 更新软件,若无法重启,则清理
"C:\Users%user%\AppData\Roaming\Docker"
,待再次重启成功后替换配置文件或者对照原配置文件修改关键配置信息