docker 安装
wsl相关操作
修改软件源(ubuntu)
修改/etc/apt/sources.list
为下面的配置,需要赋予x
权限 chmod +x /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
切换docker容器为wsl2
选择wsl2
切换wsl2系统
查看当前wsl系统
PS C:\Users\Administrator> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
设置版本
默认启用 WSL2输入命令:wsl --set-default-version 2
即可完成版本设置。
设置版本
wsl --set-version Ubuntu-20.04 2
wsl版本参考资料
https://docs.microsoft.com/zh-cn/windows/wsl/install#update-to-wsl-2
wsl安装docker参考
https://www.cnblogs.com/360linux/p/13662355.html
docker查看run命令详情
用户在docker客户端手动生成容器时查看系统生成的run
命令,下面会用到。
安装python
sudo apt install python3-pip
安装runlike
sudo pip install runlike
使用runlike
runlike -p 容器
示例,其中在powershell前面加上wsl可以直接使用wsl对应bash的命令
PS C:\Users\Administrator> wsl docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a58bb235b3a mongo:latest "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:27016->27017/tcp mongo
8c2936cb019a redis:latest "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:6379->6379/tcp redis
PS C:\Users\Administrator> wsl runlike -p 9a58bb235b3a
docker run \
--name=mongo \
--hostname=9a58bb235b3a \
--mac-address=02:42:ac:11:00:03 \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--env=GOSU_VERSION=1.12 \
--env=JSYAML_VERSION=3.13.1 \
--env=MONGO_PACKAGE=mongodb-org \
--env=MONGO_REPO=repo.mongodb.org \
--env=MONGO_MAJOR=5.0 \
--env=MONGO_VERSION=5.0.6 \
--volume='F:\dockerVolumes\mongo:/data' \
--volume=/data/configdb \
--volume=/data/db \
-p 27016:27017 \
--runtime=runc \
-t \
mongo:latest \
mongod
上面操作的原因
上面一大堆操作主要是我忘记了如何使用wsl
设置volume
,所以需要客户端操作一下,然后使用runlike
命令查看了一下,顺便又补充了一下wsl
方面的知识,发现客户端安装的docker
不在wsl
里,意味着runlike
还是不能使用,所以需要先把wsl
升级为2
,并且在docker
客户端里面改成使用wsl
运行容器
docker run --name=mongo --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=GOSU_VERSION=1.12 --env=JSYAML_VERSION=3.13.1 --env=MONGO_PACKAGE=mongodb-org --env=MONGO_REPO=repo.mongodb.org --env=MONGO_MAJOR=5.0 --env=MONGO_VERSION=5.0.6 --volume=/data/configdb --volume=/data/db -p 27016:27017 --runtime=runc -t mongo:latest mongod
接着使用以下命令添加用户和设置密码,并且尝试连接。
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
测试连接,使用navicat