屁话不多说,先来一遍正常的流程
1、下载centos镜像
# docker pull centos
2、运行容器,修改镜像
2、1 运行
# docker run -itd --name centos7 imageID /bin/bash
2、2 安装必要功能
--进入centos容器# docker exec -it centos7 /bin/bash--没有ifconfig、ssh、vim、tree、wget等等,需要分别安装--安装ifconfig# yum search ifconfig# yum install net-tools.x86_64--安装ssh服务器# yum list openssh# yum install -y openssh-server--安装ssh客户端(非必须,有需求就装)# yum install -y openssh-clients--安装wget# yum install -y wget--换源# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# yum makecache --开启sshd服务 # systemctl start sshd --这里会报错,坑就在这里,别急接着往下看
3、保存修改,打包发布或者备份
--退出centos容器# exit--保存修改# docker commit centos7 new_image_centos7:v1.0--查看是否保存成功# docker images--保存修改后的镜像到本地文件系统# docker save imageID > /home/centos7_update.jar--删除之前无用的容器和镜像# docker stop centos7# docker rm $(docker ps -aq)# docker rmi imageID_1 imageID_2
4、重新加载备份文件到docker,并且运行
--加载镜像备份文件# docker load < /home/xxx.jar--这时候可以查看镜像是否加载# docker iamges--运行镜像# docker run -itd -p 8080:22 --name centos7 imageID /bin/bash --这也是个坑,留心
5、本地用ssh软件访问(我用SecureCRT)
然后结果就亮了:远程禁止你ssh连接
原因:猜测ssh服务没起来,进去一看果然(ps -ef | grep ssh 结果没有开启)
1、尝试开启sshd服务:
--开启服务不用service,改为systemctl了--以前用 service sshd start# systemctl start sshd结果:Failed to get D-Bus connection: Operation not permitted
经过百度搜索,发现:这是兼容性问题
2、解决
--运行镜像步骤改变# docker run -itd -p 8080:22 --name centos7 imageID /usr/sbin/init--这不用/bin/bash--进入centos7容器,开启服务就可以了# docker exec -it centos7 /bin/bash# systemctl start sshd--查看是否启动# ps -ef | grep ssh
3、结尾
--重新连接让输入用户名密码,但是有问题---》没密码--所以在容器中要设置root密码# passwd root........--开始连接吧