Docker宝贝成长计划第六天(centos7+sshd新docker镜像的制作)

1、清除所有的容器

[root@docker ~]# docker rm -f `docker ps -qa` #清除所有的容器

2、启动一个基础centos容器

[root@docker ~]# docker run -it --name "c1_sshv1" centos:7 /bin/bash #启动一个centos容器

3、进入容器中查询是否安装ssh,安装所需要的软件包。

[root@db29600b2097 /]# rpm -qa|grep openssh

执行后没有返回值说明没有安装ssh。

4、更改yum源为本地ftp上的yum源。

首先,查看容器中的yum源。

[root@db29600b2097 /]# cd /etc/yum.repos.d/

[root@db29600b2097 yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-fasttrack.repo

CentOS-CR.repo    CentOS-Media.repo      CentOS-Vault.repo    CentOS-x86_64-kernel.repo

其次,把该目录下的repo文件全部移走到/tmp目录下。

(1)[root@db29600b2097 yum.repos.d]# mv *.repo /tmp/

(2)在/etc/yum.repos.d/目录下执行以下命令生成新的repo源

cat >/etc/yum.repos.d/ftp_7.repo <

[ftp]

name=ftpbase

baseurl=ftp://172.17.0.1/centos7.9

enable=1

gpgcheck=0

EOF

(3)生成新的yum源,进行yum源优化(注意名词:base源、epo源)

[root@db29600b2097 yum.repos.d]#yum clean all

[root@db29600b2097 yum.repos.d]#yum makecache fast #做一下缓存索引

5、优化完yum源之后,在容器中安装openssh

[root@db29600b2097 yum.repos.d]#yum install -y openssh*

[root@db29600b2097 yum.repos.d]#yum install -y openssh-server

6.1、centos6安装完ssh之后,手工启动ssh。执行如下命令:

[root@db29600b2097 yum.repos.d]#/etc/init.d/sshd start    #----->重要:ssh第一次启动时,需要生成秘钥,生成pam验证配置文件

[root@db29600b2097 yum.repos.d]#/etc/init.d/sshd restart #重启sshd服务

[root@db29600b2097 yum.repos.d]#/etc/init.d/sshd stop #停止sshd服务

ssh安装完成之后,如果root没有设置密码是无法连接的,还需要给ssh设置密码:

[root@db29600b2097 yum.repos.d]#/echo "123456" | passwd root --stdin

[root@db29600b2097 yum.repos.d]#ssh 172.17.0.2 #连接到ssh服务器

"hang" 运行sshd,并丢到后台

/usr/sbin/sshd -D

6.2、centos7安装完ssh后,手动启动ssh,执行如下操作

centos7 统一使用systemd管理,没有了init.d的管理模式,sshd没办法初始化管理秘钥对,因此centos7需要手动启动sshd服务如下:

mkdir /var/run/sshd

use 'UseDNS no'  >> /etc/ssh/ssh_config

sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd

echo 'root:123456' | chpasswd

/usr/bin/ssh-keygen -A

以下步骤与centos6一样。

7、基于容器制作镜像。

[root@df8386465269 /]#docker commit c1_sshv1 qianlong/sshd:v1

8、基于新镜像启动容器实现centos7+sshd的功能

[root@df8386465269 /]#docker run -d -p 2222:22 --name c1 qianlong/sshd:v1  /usr/sbin/sshd -D #容器已启动ssh自动hang在后台,这是启动容器的经典的办法。

练习: 

nginx 手工制作镜像

nginx -g "daemon off;"

注:启动时自动挂载可以把挂载命令写入/etc/rc.local中去。

sh /etc/rc.local可以执行rc.local里面的语句。

centos7可以使用systemctl list-unit-files 可以查看启动项服务

https://www.centos.org/download/mirrors/该网址是所有版本镜像的索引。

history 命令可以查看历史输入命令。

ps -aux命令查看系统进程详细信息。

你可能感兴趣的:(Docker宝贝成长计划第六天(centos7+sshd新docker镜像的制作))