目录

一、问题背景

二、操作步骤

1.打开命令行(Windows键 + R,然后输入cmd,并回车)

2.先查看一下本地的所有镜像

3.查看要拉取的镜像版本(标签)

4.拉取对应的镜像

5.运行一个容器

6. 使用终端进入Ubuntu

7.更新

8.安装ssh服务

9.安装vim编辑器

10.编辑ssh配置文件

11.启动ssh服务并查看服务状态

12.为root设置密码以便于登录

三、测试


一、问题背景

        我的计算机是 Windows11 操作系统,我希望能够在这台计算机上使用Linux操作系统,并且能够通过网络远程访问这个Linux操作系统,使用Docker是这个问题的一种解决方案。Docker 有 Windows 版本,名为Docker Desktop。官网链接:

        Docker: Accelerated, Containerized Application Development

        在安装完成Docker Desktop之后,就可以拉取(pull)一个镜像(Image)并且运行一个容器(Container)。如果不太清楚镜像和容器是什么,可以把镜像简单理解为类,把容器简单理解为对象。基于一个镜像,可以生成并运行一个容器。

        下面的过程的过程主要包括:

                1.拉取镜像。

                2.运行容器。

                3.安装服务并运行(因为发现所拉取的ubuntu镜像是最小安装,很多重要的服务都没有,比如远程登陆的ssh服务)。

        

二、操作步骤

1.打开命令行(Windows键 + R,然后输入cmd,并回车)

2.先查看一下本地的所有镜像

在命令行输入以下命令:

docker images

3.查看要拉取的镜像版本(标签)

可以在搜索栏里面搜索ubuntu,找到对应的版本。(也可以直接访问官网: Ubuntu )

 我选择的是Ubuntu 22.04版本。

4.拉取对应的镜像

在命令行输入以下命令:

docker pull ubuntu:22.04

5.运行一个容器

在命令行输入以下命令:

docker run -itd -p IP地址:外部端口:内部端口 --name 容器名字 镜像:标签 /bin/bash

注:
    外部端口是指Windows操作系统中的端口
    内部端口是指容器中的Ubuntu操作系统的端口
    这里是一个例子:
    docker run -itd -p 0.0.0.0:10000:22 --name myubuntu ubuntu:22.04 /bin/bash
    其中:
        0.0.0.0表示本地所有的Ip
        这里把windows系统中的10000端口映射到了ubuntu的22端口(ssh需要使用22端口)

可以使用以下命令查看正在运行的容器信息:

在Docker Desktop界面也可以看到相关的信息:

6. 使用终端进入Ubuntu

 点击“Open in Terminal”:

 打开终端后如下所示:

7.更新

apt update

8.安装ssh服务

apt install openssh-server

9.安装vim编辑器

 需要对ssh配置文件进行编辑,所以要安装vim编辑器:

 10.编辑ssh配置文件

配置文件的位置位于 “ /etc/ssh ”,需要编辑该目录下的sshd_config文件

需要进行以下四项的配置:

PermitRootLogin yes #允许root使用ssh登录

PubkeyAuthentication yes #启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # AuthorizedKeysFile项已包含在配置文件,这里只需要取消注释即可,此处的路径“.ssh/authorized_keys”以本地文件为准

UsePAM no #不适用PAM

 配置结果如下面两个图所示:

11.启动ssh服务并查看服务状态

service ssh start

service ssh status

12.为root设置密码以便于登录

使用“passwd”命令设置密码(注:为了保证安全,在设置密码时候,输入的内容是不会输出到屏幕上的,所以输入字符时候,是看不到输入内容的,正常输入即可)

三、测试

在另一台计算机上,使用ssh登录到容器中Ubuntu的root,配置成功:

本篇文章的部分内容参考了:

Docker Docs: How to build, share, and run applications

docker ssh连接_docker容器ssh连接_Dennis-Chen的博客-CSDN博客

如有不当或错误之处,恳请您的指正,谢谢!!!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐