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!

原文地址:https://www.cnblogs.com/lich1x/p/14490213.html