屁話不多說,先來一遍正常的流程
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 .... .... --開始連接吧
