Docker 构建 CentOS 7.8.2003 SSH 镜像

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 [email protected]

配置ssh免密登录

# 无特殊处理直接回车即可
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys

其他[无需求可略过]

① 安装jdk

  1. 下载jdk jdk1.8

  2. 复制下载的文件至docker容器内:[在宿主机]

    docker cp ~/Downloads/jdk-8u251-linux-x64.tar.gz 9875759233ad:/opt/envs
    
  3. 解压:[在docker容器内]

    tar -zxvf jdk-8u251-linux-x64.tar.gz
    
  4. 配置java环境
    a. 编辑 /etc/profile

    vi /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

3. 大功告成

你可能感兴趣的:(Docker 构建 CentOS 7.8.2003 SSH 镜像)