Docker——创建ubuntu容器(虚拟机里的虚拟机)

目录

  • 第一步:拉取ubuntu镜像
  • 第二步:创建ubuntu容器
  • 第三步:进入容器
  • 第四步:给ubuntu容器换源
  • 第五步:安装需要的工具
  • 第六步:启动ssh
  • 第七步:本地(这里是指容器自己连接)连接测试
  • 第八步:暴露22端口,让宿主机(vm虚拟机)和宿主的宿主(win10)以及其他外部机器连接
  • 第九步:宿主机(vm虚拟机)连接
  • 第十步:宿主的宿主(win10)以及其他外部机器连接

我电脑是window10,这里是win10里的vmware虚拟机(ubuntu)里面的docker,所以我说是虚拟机里的虚拟机。window10是vmware的宿主机,而vmware是docker的宿主机。

第一步:拉取ubuntu镜像

命令:sudo docker pull ubuntu
说明:这里拉取的是基础镜像,里面什么都没有,只有基本命令,要自己换源下载软件。

第二步:创建ubuntu容器

命令:sudo docker run -it -d --name ubuntu-huang ubuntu /bin/bash
参数作用:

第三步:进入容器

命令:sudo docker exec -it ubuntu-huang /bin/bash

第四步:给ubuntu容器换源

因为容器里没有vi,vim,nano,所以用最简单的方法:拷贝。
在宿主机编辑好sources.list文件,然后拷贝到容器内。内容为ubuntu18.04lts的国内源,自行百度。
拷贝命令:sudo docker cp ./sources.list ubuntu-huang:/etc/apt/sources.list
到容器里确认是否拷贝成功,命令:cat /etc/apt/sources.list
更新源:apt-get update

第五步:安装需要的工具

安装vim、ifconfig、tree、ping、ssh
命令:apt-get install vim
apt-get install net-tools
apt-get install tree
apt-get install iputils-ping
apt-get install openssh-server

第六步:启动ssh

刚刚装了ssh,现在查看是否开启ssh服务,命令:ps -e | grep ssh
发现什么都没有。

修改ssh配置文件,命令:vim /etc/ssh/sshd_config
添加一行代码:PermitRootLogin yes
PermitRootLogin prohibit-password这行必须注释掉,
默认是注释掉的,然后保存退出。
启动ssh服务:/etc/init.d/ssh start
查看22端口情况:netstat-lnutp | grep 22
设置容器root账号密码为admin,命令:passwd

第七步:本地(这里是指容器自己连接)连接测试

命令:ssh 0.0.0.0 -p 22

第八步:暴露22端口,让宿主机(vm虚拟机)和宿主的宿主(win10)以及其他外部机器连接

先退出容器,命令:exit
制作一个以当前ubuntu-huang容器为对象的镜像,命令:
sudo docker commit -m "include ssh,vim,etc" -a "huang" ubuntu-huang ubuntu18.04-ssh-huang:0213
用新镜像创建一个容器,并暴露22端口,映射容器的22端口到宿主机10022端口,命令:
sudo docker run -d -it --name ubuntu18.04-ssh-huang -p 10022:22 ubuntu18.04-ssh-huang:0213 /bin/bash
确认容器状态正常,没有exit(x)之类,命令:sudo docker ps -a
进入容器,命令:sudo docker exec -it ubuntu18.04-ssh-huang .bin/bash
确认容器版本:cat /etc/issue
启动ssh服务:/etc/init.d/ssh start
确认22端口成功监听,命令:netstat -lnutp | grep 22

第九步:宿主机(vm虚拟机)连接

用ssh访问自己的10022端口
命令:ssh [email protected] -p 10022

第十步:宿主的宿主(win10)以及其他外部机器连接

用ssh工具连接,如putty
直接访问虚拟机的ip和10022端口
如果虚拟机也是映射到主机,同样的道理,访问自己的那个端口就行。

你可能感兴趣的:(操作系统,docker,linux,ubuntu,ssh)