# 1、环境
Windows 11
Docker 20.0.2
# 2、拉取镜像
我选择 ubuntu20.04:
```powershell
docker pull ubuntu:20.04
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/6d91edc5dee74560b459cd6a0a463efc.png)
然后我们用命令看一下本地镜像:
```powershell
docker images
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/8742a54dbce04794be81a7b766ea4b92.png)
# 3、启动容器
```powershell
docker run -it IMAGE_ID bash
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/9fd89e5d67f649a0817ea405ce67bdd5.png)
# 4、预备操作
## 4.1安装vim
### 4.1.1 更新软件包信息
```powershell
apt-get update
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/61ab689d3ee34aaf827d9f611788ee9b.png)
### 4.1.2 安装vim
```powershell
apt-get install vim
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/92fe6b15ce7443b48419fb8d89d303e8.png)
## 4.2 换源
### 4.2.1 备份镜像源设置文件
```powershell
cp /etc/apt/sources.list /etc/apt/sources.list.bak
```
### 4.2.2 编辑镜像源设置文件
```powershell
vim /etc/apt/sources.list
```
如果不出意外大家原来文件都应该如下图一样:
![在这里插入图片描述](https://img-blog.csdnimg.cn/27a74a1d0eb741f5a4f27ab129527608.png)
我们键入 `ggdG` 删除其中全部内容,复制下面的所有内容粘贴上去 **(一次只可以选一个镜像源,根据你的情况选)**
```powershell
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
```
```powershell
# 清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
```
```powershell
# 中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
```
我这里选用阿里源,按 esc 键再 :wq 保存退出
![在这里插入图片描述](https://img-blog.csdnimg.cn/8d982ea2124e4c5d862f2ca3fb5dcfb7.png)
### 4.2.3 重新更新一下软件包信息
```powershell
apt-get update
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/1f5e575a4c4842e58eb63c3d82900835.png)
## 4.3 同步上海时间
输入下面命令可以看到时间和咱们时间不一样,需要同步一下不然以后可能会遇到一些问题
```powershell
date
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/39f75925bfb34cd696fca0e5217f7d22.png)
### 4.3.1 安装 tzdata
```powershell
apt-get install tzdata
```
然后按照提示选择 Asia 对应的序号,选完后会显示一堆新的提示—输入城市名,如 Shanghai,按照提示进行选择时区,就可以看到时间修改成功了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6c246eff5bfa410da7469a69c80e43e1.png)
然后使用下面命令:
```powershell
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
将时区文件链接到本地时间文件上,以便系统能够正确地显示当前时间,防止系统重启后时区改变。
## 4.4 安装 ssh 配置免密登陆
### 4.4.1 安装 ssh
先用下面命令安装 ssh 服务
```powershell
apt-get install openssh-server
```
### 4.4.2 设置允许 root 远程访问
打开配置文件
```powershell
vim /etc/ssh/sshd_config
```
在#PermitRootLogin prohibit-password下添加如下内容
```powershell
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/e28a34a4e4d04ecbbe4fcb7fa9d218ec.png)
重启ssh服务
```powershell
service ssh restart
# 容器中不能调用 systmctl命令,故命令只在宿主机配置ssh时使用,容器中使用service
```
配置容器内的 root 用户密码,该密码可用于远程登录
```powershell
passwd root
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a2082077eb24129808484b8aaa9cbd4.png)设置 ssh 开机自启,找到并打开文件/root/.bashrc
```powershell
vim /root/.bashrc
```
在 .bashrc 末尾添加如下代码
```powershell
service ssh start
```
退出使用如下命令让环境变量生效:
```powershell
source /root/.bashrc
```
最后配置一下 ssh 免密登陆
```powershell
ssh-keygen -t rsa #一直按回车键即可
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
```
到这里咱们前期准备工作差不多完成了,`exit` 退出当前容器,然后我们可以保存镜像,以备以后的使用
```powershell
docker commit CONTAINER_ID ssh_installed
```
# 5、配置远程连接
使用下面命令查看系统内有哪些镜像:
```powershell
docker images
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/bdacbd81e54043b4993ede8fc50b16d6.png)
选择上一步保存的镜像并生成容器,在这过程还要做端口映射,例如:
```powershell
docker run -it -d --name [container-name] -p 8088:80 [image-name]
```
我这里用的是下面命令,把这个容器命名为 hadoop,将容器内的 22 端口映射到宿主机的 50001 端口:
```powershell
docker run -it -d --name hadoop -p 50001:22 ssh_installed
```
我们可以看到,我们需要的容器正在运行中了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/25d45413ded04b3691ccbc09f8e0e1b6.png)
现在就可以设置远程连接了,在这里我选择 xshell 作为远程连接工具,填入如下信息:
![在这里插入图片描述](https://img-blog.csdnimg.cn/62c29a990dd346398e6a3c09afb50b55.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/0c12514895ca428385a2f1ddff4ae23c.png)
这里的 root 密码是咱们在步骤 4.4.2 中设置的 root 的密码,设置完成之后,点击连接,可以看到顺利连接上了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7845281dad4140a896b84c8b89fe17b1.png)
后续操作和虚拟机配置 hadoop 基本一致,题主有空完善(先埋下坑以后再填😂😂😂),或者客官可以移步题主另一篇博客参考一下:[Ubuntu下搭建伪分布式从0开始安装Hive详细教程](https://blog.csdn.net/a6661314/article/details/124520683)