下载安装 docker desktop windows

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

镜像加速

  1. https://docker.mirrors.ustc.edu.cn/

image.png

启动错误

  • 卸载 docker desktop
  • 删除:C:\Users\xxx(自己的账号目录下).docker

    安装 WSL2-Ubuntu20.04

    WSL-Ubuntu20

    安装 WSL2-Centos8

    PowerShell 中执行

    运行 centos 容器

    1. docker run --name c8 centos:8

    导出 centos

    1. docker export c8 -o d:\centos8.tar

    WSL 导入

    1. wsl --import Centos8 c:\centos8 D:\centos8.tar --version 2

    WSL 开启

    ```powershell wsl -d Centos8

    查看版本

    cat /etc/redhat-release CentOS Linux release 8.3.2011
  1. <a name="nkum3"></a>
  2. # 构建开发环境
  3. <a name="KukEE"></a>
  4. ## 进入 centos
  5. ```powershell
  6. wsl -d Centos8

oralce

  1. wget -O /mnt/d/ora_basic.rpm https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
  2. wget -O /mnt/d/ora_devel.rpm https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-devel-19.9.0.0.0-1.x86_64.rpm
  3. rpm -ivh /mnt/d/ora_*.rpm
  4. echo 'export ORACLE_HOME=/usr/lib/oracle/19.9/client64
  5. export TNS_ADMIN=$ORACLE_HOME/network/admin
  6. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
  7. export PATH=$ORACLE_HOME/bin:$PATH' >> ~/.bashrc
  8. source ~/.bashrc

python

  1. ## 检查最新版本
  2. yum search python
  3. ## 安装 python38 (python39安装组件会报错)
  4. yum install python38 python38-devel -y
  5. ln -sf /usr/bin/python3.8 /usr/bin/python
  6. ln -sf /usr/bin/pip3.8 /usr/bin/pip
  7. ## python换源
  8. mkdir -p ~/.pip/
  9. echo '[global]
  10. timeout = 6000
  11. index-url = http://mirrors.aliyun.com/pypi/simple/
  12. [install]
  13. trusted-host = mirrors.aliyun.com' > ~/.pip/pip.conf
  14. ## pip 升级
  15. pip install --no-cache-dir --upgrade pip
  16. ## 安装常有组件
  17. pip install --no-cache-dir pandas flask launchpadlib msgpack cx_Oracle SQLAlchemy paramiko redis psycopg2-binary xmltodict py_smtp color_log PyYAML pyecharts pipreqs twine openpyxl xlrd xlwt waitress pymysql py_ctp

golang

  1. ## 下载解压
  2. wget -O go.tar.gz https://studygolang.com/dl/golang/go1.16.6.linux-amd64.tar.gz
  3. tar -C /usr/local -xzf go.tar.gz
  4. ln -s /usr/local/go/bin/go /usr/bin/go
  5. rm -f go.tar.gz
  6. echo 'export GOPROXY=https://goproxy.io
  7. export GOROOT=/usr/local/go
  8. export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc
  9. source ~/.bashrc

开启 SSH

  1. ## 安装openssh-server
  2. yum install -y openssh-server
  3. ## 启用sshd 密码访问
  4. echo "root:pentakill" | chpasswd
  5. ssh-keygen -A
  6. nohup /usr/sbin/sshd -D &
  7. ## 系统启动时自动运行
  8. echo "nohup /usr/sbin/sshd -D &" >> /etc/profile

配置 .wslconfig

编辑宿主文件 C:\Users\.wslconfig

  1. [wsl2]
  2. memory=4GB
  3. swap=8GB
  4. localhostForwarding=true

生效

  1. # 需要管理员权限
  2. net stop LxssManager
  3. net start LxssManager

外部访问 sshd

宿主访问
  1. #查看wsl2 IP
  2. wsl ip a |wsl grep -w "inet" |wsl cut -d " " -f 6 |wsl cut -d "/" -f 1 | wsl grep -v '127.0.0.1'
  3. ## 宿主访问方式 # 密码 pentakill
  4. ssh root@127.0.0.1
  5. ssh root@localhost

外网访问

centos.wsl

  1. ## centos8中修改宿主的 hosts
  2. cat >> /etc/profile << 'EOF'
  3. ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
  4. sed -i '/centos.wsl/d' /mnt/c/Windows/System32/drivers/etc/hosts
  5. echo "$ipaddr centos.wsl" >> /mnt/c/Windows/System32/drivers/etc/hosts
  6. EOF
  7. ## 权限问题: 管理员运行 powershell,再 wsl -d Centos8
  8. source /etc/profile

win10

  1. # 查看windows防火墙转发规则
  2. netsh interface portproxy show all
  3. # 添加转发使用别名替代 WSL2 IP
  4. ## listenport win10 端口
  5. ## connectport wsl 端口
  6. netsh interface portproxy add v4tov4 listenaddress=* listenport=22 protocol=tcp connectaddress=centos.wsl connectport=22
  7. # 删除转发
  8. # netsh interface portproxy delete v4tov4 listenport=22
  9. # 访问
  10. ssh root@win10IP

Centos8 中使用 docker

配置 Docker Desktop 支持 Centos8

image.png