用windows10家庭版构建基础的开发环境
一、 搭建目标
基于Windows10家庭版,以及自带的Ubuntu子系统,搭建linux开发环境以及dokcer运行环境,并实现Ubuntu和Windows环境间的相互通信。预计搭建时长1到2h左右(和获取资源时的拉取站点有关,建议使用国内镜像站点资源)。
二、 实验环境
硬件设备:华为MateBook D ,64位,处理器Intel(R)Core(TM)i7-8550U CPU@1.80GHZ 2.00 GHz,内存16.0 GB
软件环境:windows10家庭版,18363.900
三、 实验步骤
(一) 安装Ubuntu
我这里选择的是Ubuntu 20.04 LTS版本,通过windows10自带的应用商店MicrosoftStore进行安装。
会遇到如下提示:
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
See https://aka.ms/wslinstall for details.
Press any key to continue...
按照字面意思,就是要求启用Linux子系统后再安装。
右键左下角(任务栏左侧)的windows徽标,点击“设置”,选择“应用和功能”,如下图所示:
滚动到最下方,点击相关设置区域的“程序和功能”:
选择左侧“启用或关闭Windows功能”,选中“适用于Linux的Windows子系统”:
再次启动Ubuntu 20.04 LTS,按照提示输入用户名和密码(不必和Windows的用户名/密码相同),即可显示:“Installation successful!”,安装成功后启动画面如下:
第1个IP应该和widows的ip一致,另外两个为虚拟网卡IP,可以记下来,后边通过windows访问Ubuntu会用到。
(二) 安装DockerToolbox
我使用的版本是DockerToolbox-19.03.1,建议从镜像站点下载安装文件,如https://get.daocloud.io/toolbox/,阿里云站点也可以,但最新版本更新不太及时。按照提示安装,可能会遇到如下报错:
This computer doesn't have VT-X/AMD-v enabled. Enabling it i
以管理员身份打开WINDOWS的CMD命令窗口,执行bcdedit看最后一行hypervisorlaunchtype的状态,将其设置为off:
bcdedit /set hypervisorlaunchtype off
再次安装DockerToolbox-19.03.1(如果仍然报错就注销当前用户重新登录一下),出现以下报错:
Running pre-create checks...
(default) Image cache directory does not exist, creating it at C:\Users\{用户名}\.docker\machine\cache...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest:
上边的错误简单解释就是从线上拉取镜像网络太慢拉不下来,我们手工下载一个boot2docker.iso,按照提示从github上或者其他镜像站点下载都可以,github(https://github.com/boot2docker/boot2docker/releases/download/v19.03.5/boot2docker.iso)很慢,但我还是从上边下载下来了。把boot2docker.iso放入指定目录下:
C:\Users\{用户名}\.docker\machine\cache再次启动DockerToolbox就应该可以正常安装了。安装完毕后,有三个图标(默认安装了git,virtualbox,以及可视化docker镜像管理工具kitematic和docker的快速启动命令行工具Terminal):
我们运行“Docker Quickstart Terminal”就好,它其实是git目录下的“bash.exe”命令,就会自动启动docker,首次运行会自动创建网络,成功后如下提示:
进入Docker Quickstart Terminal,运行“docker info”、“docker run hello-world”、“docker images”、“docker-machine ls”等命令,能够正常反馈,那就说明windows的docker环境安装就绪了。
重启电脑后,只需要打开1次Docker Quickstart Terminal,docker服务就已经处于运行状态,可以关闭该窗口,直接通过windows的命令行窗口进行相应的命令操作。
(三) 实现在Ubuntu上操作Docker
我们回到子系统Ubuntu,要从Ubuntu中操作docker需要做两件事:
1、 安装docker组件
(1) 安装docker
sudo apt install docker.io
(2) 安装用于定义和运行多容器 Docker 应用程序的工具
sudo apt install docker-compose
(3) 添加docker权限给当前用户,使docker命令免sudo
sudo gpasswd -a $USER docker
这时,运行docker info报错,需要配置daemon远程访问:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
2、 配置远程Docker daemon访问
在/etc/profile的最下方添加配置信息
编辑profile文件,vi /etc/profile填加三行:
export DOCKER_HOST=tcp://192.168.99.100:2376
export DOCKER_CERT_PATH=/mnt/c/Users/{名}/.docker/machine/certs
export DOCKER_TLS_VERIFY=1
保存退出后,重新登录用户生效,再次运行docker info等命令成功。
3、 实现windows命令行访问ubuntu
每次需要进入ubuntu系统操作还是比较麻烦,所以建议还是要配置其ssh以便于在windows命令行下就能够连接到ubuntu操作相关命令。
sudo /etc/init.d/ssh start报错,切换到root用户执行以下命令
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key 生成dsa认证
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 生成rsa认证
#/usr/sbin/sshd 启动ssh服务
sudo systemctl enable ssh 让ssh默认自动启动。
vi /etc/ssh/sshd_config
Port = 22 # 默认是22端口,如果和windows端口冲突或你想换成其他的否则不用动
#ListenAddress 0.0.0.0 # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP
PermitRootLogin no # 如果你需要用 root 直接登录系统则此处改为 yes
PasswordAuthentication no # 将 no 改为 yes 表示使用账号密码方式登录
在windows命令行下执行 ssh {用户名}@ 192.168.99.1或ssh {用户名}@ 192.168.56.1输入密码进行Ubuntu子系统。