創建支持ssh的docker鏡像

         docker容器運行,一般不能ssh,這容器的管理帶來麻煩,下面將介紹如何創建支持ssh的docker鏡像

  1. 首先從dock hub  下載 ubuntu的鏡像

    命令: docker pull ubuntu

  2. 新建一個ssh_ubuntu 目錄

    mkdir /ssh_ubuntu

  3. cd /ssh_ubuntu ;touch Dockerfile

     

  4. vi Dockerfile

    Dockerfile內容

    FROM ubuntu
    MAINTAINER lincoln_zhong
    RUN apt-get update
    RUN apt-get install -y openssh-server sudo
    RUN mkdir -p /var/run/sshd
    RUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
    RUN useradd admin 
    RUN echo "admin:admin" | chpasswd 
    RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers
    EXPOSE 22
    CMD ["/usr/sbin/sshd" , "-D"]
    wKiom1WJHhnAm7gXAAF7-nuigdQ137.jpg

  5. cd /ssh_ubuntu .運行 docker build -t ssh_ubuntu .  #ssh_ubuntu是鏡像名稱

  6. 運行 docker images

    wKiom1WJHoqBBBSEAAKVgQxRIgE289.jpg

  7. 運行一個容器測試 命令: docker run -d --name ssh_ubuntu_test -p 0.0.0.0:10000:22 ssh_ubuntu

    命令解析

    -d是以守護模式啓動

    --name 定義容器名稱

    -p是定義端口(上面這個意思是本地主機(宿主機)的10000端口映射到容器的22端口

    wKiom1WJHzySz_p4AADelmZ_ODM797.jpg

  8. 容器ssh_ubuntu_test 運行成功, 用ssh登入容器測試命令: ssh admin@宿主機IP -p 10000 我這裏是10.10.1.181

    ssh [email protected] -p 10000

  9. 測試成功

  10. 附centos搭建支持ssh的容器dockerfile 內容

     

  11. # 選擇一個已有的os鏡像作爲基礎 
    FROM centos

  12. # 鏡像的作者 
    MAINTAINER LINCOLN ZHONG
      
    # 安裝openssh-server和sudo軟件包,並且將sshd的UsePAM參數設置成no 
    RUN yum install -y openssh-server sudo 
    RUN sed -ir 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config 
     
    # 添加測試用戶admin,密碼admin,並且將此用戶添加到sudoers裏 
    RUN useradd admin 
    RUN echo "admin:admin" | chpasswd 
    RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers 
      
    # 下面這兩句比較特殊,在centos6上必須要有,否則創建出來的容器sshd不能登錄 
    RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key 
    RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 
     
    # 啓動sshd服務並且暴露22端口 
    RUN mkdir /var/run/sshd 
    EXPOSE 22 
    CMD ["/usr/sbin/sshd", "-D"] 


 wKioL1WKzJHQoRN1AASCU0XpacY132.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章