通過dockerfile來制作ssh鏡像
新建一個文件夾
mkdir -p /opt/ubuntu-ssh-root
# 將宿主機的/etc/apt/sources.list文件拷貝到該目錄下
cp /etc/apt/sources.list /opt/ubuntu-ssh-root
編寫Dockerfile文件
vim Dockerfile
內容如下:
# 選擇一個已有的os鏡像作為基礎 FROM aarch64/ubuntu:16.04 # 鏡像的作者 MAINTAINER hanzhe
# 拷貝sources.list文件到/etc/apt下,后續安裝服務需要 COPY sources.list /etc/apt/ # 安裝openssh-server和sudo軟件包,並且將sshd的UsePAM參數設置成no # 盡量少些RUN命令,而改用&& 減少封裝次數
# 更新鏡像源 RUN apt update \ && apt install -y openssh-server \ && sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config \ #安裝openssh-clients && apt install -y openssh-client \
# 這個地方需要注意,可能配置不一樣,根據個人的實際配置文件來進行修改 && sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \ # 添加測試用戶root,密碼root,並且將此用戶添加到sudoers里 && echo root:root | chpasswd \ && echo "root 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"]
通過Dockerfile來構建docker image
docker build -t="ubuntu-ssh-root" .
查看docker images
docker images
啟動docker 容器
docker run -it -d --name test ubuntu-ssh-root:latest
進入容器,進行測試成功