创建支持ssh的docker镜像
首先從dock hub? 下載 ubuntu的鏡像
命令: docker pull ubuntu
新建一個ssh_ubuntu 目錄
mkdir /ssh_ubuntu
cd /ssh_ubuntu ;touch Dockerfile
?
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"]
cd /ssh_ubuntu .運行 docker build -t ssh_ubuntu .? #ssh_ubuntu是鏡像名稱
運行 docker images
運行一個容器測試 命令: docker run -d --name ssh_ubuntu_test -p 0.0.0.0:10000:22 ssh_ubuntu
命令解析
-d是以守護模式啟動
--name 定義容器名稱
-p是定義端口(上面這個意思是本地主機(宿主機)的10000端口映射到容器的22端口
容器ssh_ubuntu_test 運行成功, 用ssh登入容器測試命令: ssh admin@宿主機IP -p 10000 我這里是10.10.1.181
ssh admin@10.10.1.181 -p 10000
測試成功
附centos搭建支持ssh的容器dockerfile 內容
?
# 選擇一個已有的os鏡像作為基礎?
FROM centos
# 鏡像的作者?
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"]?
?
本文出自 “昨夜雨疏風驟” 博客,請務必保留此出處http://zxx287856774.blog.51cto.com/3417296/1664682
總結
以上是生活随笔為你收集整理的创建支持ssh的docker镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一小时Docker教程
- 下一篇: 制作ubuntu16.04的docker