作者:cokey61

  • 💻 Windows10专业版

🌏一、安装Docker

  • 勾选Hyper-V

    Docker支持Windows 10 Pro且需要开启Hyper-v
    控制面板->程序和功能->启用或关闭Windows功能 将下图红框部分选中点击确定

20210302140516399.png

  • 下载docker

    在docker官网下载docker并安装,安装成功后桌面会出现这个图标

微信截图_20210527115233.png

  • 注册docker并登录
  • 配置加速源

    进入阿里云官网搜索容器镜像服务进入

微信截图_20210527115057.png

点击控制台

微信截图_20210527115125.png

选择镜像加速,复制镜像加速地址

微信截图_20210527115149.png

打开DockerDesktop ,点击设置>Docker Engine,在registry-mirrors一栏后加入阿里云复制的镜像加速地址即可

微信截图_20210527115439.png微信截图_20210527115502.png

  • 查看Docker版本

    windows命令行win+r,输入cmd并回车进入终端,输入查看版本,无异常报错信息则安装成功

  1. docker --version
  • 登录Docker

    终端输入命令登录

  1. docker login docker.io

🧭 二、安装CentOS及相关工具并配置环境

  • 拉取centos最新镜像

    1. docker pull centos
  • 查看本地镜像

    1. docker images
  • 运行容器

    –privileged: 可以使container内的root拥有真正的root权限 -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; –name=”myCentos”: 为容器指定一个名称,如果不写,会自动生成一个名字,如modest_bouman; /usr/sbin/init:因为后面会使用systemctl启动sshd服务,所以添加该项,否则会报错Failed to get D-Bus connection: Operation not permitted

  1. docker run -itd -p 50022:22 --privileged --name myCentos centos /usr/sbin/init
  • 进入容器

    因为/usr/sbin/init覆盖了默认的 /bin/bash,所以不能使用docker attach进入容器了,需要使用以下方式进入。

  1. docker exec -it myCentos /bin/bash
  • 安装必要工具

    安装网络工具,可以使用ifconfig查看网卡ip信息

  1. yum -y install openssh-clients

安装ssh服务

  1. yum -y install openssh-server

安装ssh客户端

  1. yum -y install net-tools

安装passwd,修改root用户密码

  1. yum -y install passwd
  • 修改ssh配置
    1. vi /etc/ssh/sshd_config

    修改以下配置,如注释掉的则解开注释

  1. Port 22
  2. ListenAddress 0.0.0.0
  3. ListenAddress ::
  4. PubkeyAuthentication yes
  5. GSSAPIAuthentication yes
  6. GSSAPICleanupCredentials yes
  7. UsePAM no
  • 添加自启动并启动ssh服务

    1. cd /bin
    2. systemctl enable sshd.service
    3. systemctl start sshd.service
  • 设置root管理员密码

    1. passwd root
  • 使用xshell或finalshell连接

    新开终端输入ipconfig查看本机ip

  1. ipconfig

微信截图_20210527140228.png

192.168.124.17是docker宿主机(即windows)的ip,启动docker时映射的端口号是50022,所以需要使用这个端口连接ssh服务,点击连接按钮后再弹出的窗口输入之前设置的root密码,即可完成连接

微信截图_20210527140327.png

🔧 三、保存镜像

  • 使用exit退出centos的shell,进入宿主机shell

    1. exit
  • 查看运行中的容器

    1. docker ps -a
  • 提交镜像

    1. docker commit -m "myCentos with ssh" c6d312055727 cokey61/centos_with_ssh:v1
  • 查看本地镜像

    1. docker images
    • 给镜像打标签(如果镜像标签无误则不需重新打标签)

fda05b8a62b8为镜像id,cokey61为dockerhub用户名,centos_with_ssh为起名,v1为版本号

  1. docker tag fda05b8a62b8 cokey61/centos_with_ssh:v1
  • 推送镜像

    1. docker push docker.io/cokey61/centos_with_ssh:v1
  • 查看dockerhub后台已经有了这个镜像

微信截图_20210527142947.png

🛸 参考资料