Docker創建Centos踩出來的坑


屁話不多說,先來一遍正常的流程

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
....
....

--開始連接吧

 

如果轉載請在開頭大字注明出處,謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM