使用wsl安裝docker,並安裝mongodb
阿新 • • 發佈:2022-02-13
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