• docker启动容器centos8.3并开启ssh服务


    环境说明:

    • docker跑在kali linux上,docker中下载了容器官方镜像centos8.3.8.3.2011并启动运行
    • kali linux跑在本地macOS的虚机中,使用172.16.106.0/24 的vm虚机网卡
    • 容器centos8 也使用172.16.106.0/24 网段的IP
    • 实现本地macOS可以ssh连到容器centos8即可
    • 在CentOS Linux release 7.9.2009 (Core),CentOS Linux release 7.3.1611 (Core) 也均已完成测试

    第一步:搜索容器镜像

    $ docker search centos
    



    第二步:下载容器镜像

    $ docker pull centos
    



    第三步:部署容器自定义网络环境

    $ docker network create -d macvlan --subnet=172.16.106.0/24 --ip-range=172.16.106.0/24 --gateway=172.16.106.2 -o macvlan_mode=bridge -o parent=eth0 macvlan
    

    【注意该自定义网络中,我设定的默认网关是172.16.106.2, 由于vm虚拟网卡(vmnet8)的特性,实际可按照你们本地环境为准】



    第四步:检查自定义网络

    $ docker network ls
    



    第五步:启动容器centos

    $ docker run -itd --network=macvlan --ip=172.16.106.200 --name=centos8.3 centos /bin/bash
    

    【网上很多都建议启动时指定权限--priviledge=true,但是我测试了几次貌似不加也没有具体影响,这个你们在实际环境中可以测试考量】



    第六步:进入容器配置

    $ docker exec -it [CONTAINER ID] bash
    




    第七步:搜索安装net-tools

    【熟悉的可以直接敲名字安装,可能是官方最小精简版本。。所以啥都没,如果该组件已有请略过此步骤】

    $ yum search net-tools
    $ yum install net-tools.x86_64 net-tools
    



    第八步:搜索安装passwd并修改root密码

    【熟悉的可以直接敲名字安装,可能是官方最小精简版本。。所以啥都没,如果该组件已有请略过此步骤】

    $ yum search passwd	
    $ yum install passwd.x86_64
    $ passwd root		【自行修改密码】
    



    第九步:安装openssh

    【如果该组件已有请略过此步骤】

    $ yum install openssh-server -y
    



    第十步:启动ssh

    【直接/usr/sbin/sshd 启动会报错,报错内容如下】

    Could not load host key: /etc/ssh/ssh_host_rsa_key
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    sshd: no hostkeys available -- exiting.

    【需要先生成公私钥,便可正常启动ssh服务了】

    $ ssh-keygen -A
    $ /usr/sbin/sshd
    



    第十一步:检查ssh服务

    $ netstat -pant |grep sshd
    



    第十二步:本机连接容器centos8

    GOGOGO!

  • 相关阅读:
    【英语】Bingo口语笔记(40)
    【英语】Bingo口语笔记(38)
    【Python系统学习】基础篇
    【英语】Bingo口语笔记(37)
    [转]linux下ulimit命令详解
    【转】linux read 用法
    【转】Linux下使用locale命令设置语言环境
    【转】基于linux下的变量声明declare的用法
    [转]Linux中set,env和export这三个命令的区别
    linux下echo命令详解(转)
  • 原文地址:https://www.cnblogs.com/lich1x/p/14490213.html
Copyright © 2020-2023  润新知