1. 借鉴
利用docker创建支持centos的ssh镜像
centos7创建支持ssh服务的docker镜像
CentOS 7.x设置自定义开机启动,添加自定义系统服务
2. 开始
下载centos 7镜像
docker pull centos:centos7.8.2003
运行并进入容器
docker run -it --name centos7-ssh centos:centos7.8.2003 /bin/bash
安装ssh服务
yum -y update
yum -y install passwd openssl openssh-server openssh-clients
配置ssh
mkdir /var/run/sshd/
这里我们没有配置UsePAM为no,配置文件里面没有
生成秘钥
无特殊配置直接回车即可
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
开启ssh服务
执行
/usr/sbin/sshd -D &
设置开机启动ssh服务
systemctl enable sshd
修改本机密码
passwd
验证
1. 本机验证
ssh localhost
输入密码后,可以看到我们从/目录到了~目录
退出登录则输入以下命令
exit
2. 宿主机验证
构建CentOS 7.8.2003 安装ifconfig命令
编辑宿主机host文件[我使用mac ssh登录docker容器,则需要在mac中配置]
vi /etc/hosts
添加一行
172.17.0.2 3797a02cf210
其中172.17.0.2,是docker容器的IP,可通过ifconfig查看,3797a02cf210是容器的ID(也是容器的主机名,可通过hostname查看,或者通过docker ps查看等等等)
然后在宿主机中登录即可
ssh root@172.17.0.2
配置ssh免密登录
# 无特殊处理直接回车即可
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
其他[无需求可略过]
① 安装jdk
-
下载jdk jdk1.8
-
复制下载的文件至docker容器内:[在宿主机]
docker cp ~/Downloads/jdk-8u251-linux-x64.tar.gz 9875759233ad:/opt/envs
-
解压:[在docker容器内]
tar -zxvf jdk-8u251-linux-x64.tar.gz
-
配置java环境
a. 编辑 /etc/profilevi /etc/profile
b. 在最后加入:
export JAVA_HOME=/opt/envs/jdk1.8.0_251 export PATH=\$PATH:$JAVA_HOME/bin
c. 使生效
source /etc/profile
d. 验证
java -version
e. 复制到~/.bashrc目录
cat /etc/profile >> ~/.bashrc
f. 使生效
source ~/.bashrc
基于此容器创建新镜像
docker commit 3797a02cf210 caiser/centos-ssh:7.8
push到docker hub上
注意,这里必须带有账户名的前缀,而不能是瞎写的了
docker commit 3797a02cf210 caiserkaiser/centos-ssh:7.8
sudo docker push caiserkaiser/centos-ssh:7.8
网友评论