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!