• 使用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

  • 相关阅读:
    java中的重绘
    引起共鸣的句子【转自知乎】
    东大校园网一键登录
    java用字符写字符
    Xshell 配置上传下载命令 rz sz 以及配置复制和粘贴
    【测试工程师面试】 记录XX银行面试
    常见的加密解密算法
    SHA-256 加密原理
    Spring boot 整合JSP开发步骤
    Spring boot @Scheduled(cron = "* * * * * *") cron表达式详解
  • 原文地址:https://www.cnblogs.com/harpz/p/15890211.html
Copyright © 2020-2023  润新知