使用wsl安装docker,并安装mongodb

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

posted @ 2022-02-13 20:06  blues小曾  阅读(531)  评论(0)    收藏  举报