Docker使用Dockerfile創(chuàng)建支持ssh服務自啟動的容器鏡像
本文實例為大家分享了Dockerfile創(chuàng)建支持ssh服務自啟動的容器鏡像,供大家參考,具體內(nèi)容如下
1. 首先創(chuàng)建一個Dockerfile文件,文件內(nèi)容如下
# 選擇一個已有的os鏡像作為基礎 FROM centos:centos6 # 鏡像的作者 MAINTAINER Fanbin Kong "kongxx@hotmail.com" # 安裝openssh-server和sudo軟件包,并且將sshd的UsePAM參數(shù)設置成no RUN yum install -y openssh-server sudo RUN sed -i '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上必須要有,否則創(chuàng)建出來的容器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"]
Dockerfile文件有自己的語法和命令,具體可以參考Docker的官方文檔。
2. 有了Dockerfile文件以后,就可以根據(jù)Dockerfile來創(chuàng)建image文件了,在Dockerfile所在的目錄下,運行下面的命令
sudo docker build -t centos6-ssh .
命令成功后,就會創(chuàng)建一個名字為centos6-ssh的image,可以使用“sudo docker images”來查看。
3. 此時就可以根據(jù)上面創(chuàng)建出來的image文件來創(chuàng)建自己的容器了,下面的命令會創(chuàng)建一個名字為“mytest”的容器。
sudo docker run -d -P --name=mytest centos6-ssh
4. 有了容器,就可以測試我們的ssh服務了。
4.1 運行“sudo docker inspect mytest”,查看當前啟動容器IP地址,然后運行下面的命令來測試
ssh admin@<容器IP>
4.2 另外,也可以通過docker的端口映射來訪問, 使用“sudo docker port mytest 22”查看當前容器的22端口對應的宿主機器的端口,然后通過下面的命令來訪問
ssh admin@<宿主機器IP> -p <宿主機器端口>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
docker 命令報異常permission denied的解決方案
這篇文章主要介紹了docker 命令報異常permission denied的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03docker安裝Elasticsearch7.6集群并設置密碼
這篇文章主要介紹了docker安裝Elasticsearch7.6集群并設置密碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06詳解Windows下運用Docker部署Node.js開發(fā)環(huán)境
這篇文章主要介紹了詳解Windows下運用Docker部署Node.js開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01