概述
1. 创建目录并编写Dockerfile文件:
[root@node1 ~]# mkdir ubuntu_ssh
[root@node1 ~]# cd ubuntu_ssh/
[root@node1 ubuntu_ssh]# vim Dockerfile
FROM ubuntu:18.04
MAINTAINER <xxq@123.com>
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
COPY 163.list /etc/apt/sources.list.d/163.list
RUN apt update && apt install -y openssh-server && mkdir -p /var/run/sshd && mkdir -p /root/.ssh/
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/' /etc/pam.d/sshd
COPY authorized_keys /root/.ssh/
COPY run.sh /run.sh
RUN chmod +x /run.sh
EXPOSE 22/tcp ##暴露22号端口
CMD ["/run.sh"] ##容器启动命令
2. 准备Dockerfile中需要复制到容器中文件:
## 准备容器中镜像文件:
[root@node1 ubuntu_ssh]# vim 163.list
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
## 准备公钥文件:
[root@node1 ubuntu_ssh]# cp ~/.ssh/id_rsa.pub authorized_keys
## 准备服务启动文件:
[root@node1 ubuntu_ssh]# vim run.sh
#!/bin/bash
/usr/sbin/sshd -D
3. 构建镜像:
## Dockerfile构建镜像时,如果文件名为"Dockerfile"就不用使用-f选项指定文件,直接写"./'即可
## 如果不是"Dockerfile",就需要-f选项指定文件
[root@node1 ubuntu_ssh]# docker build -t node2.openlab.com/demo/ssh:ubuntu_v2 ./
4. 查看镜像:
[root@node1 ubuntu_ssh]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node2.openlab.com/demo/ssh ubuntu_v2 3729d72faf3e 32 seconds ago 247MB
5. 将镜像推送到Harbor上:
[root@node1 ubuntu_ssh]# docker push node2.openlab.com/demo/ssh:ubuntu_v2
6. 运行镜像:
[root@node1 ubuntu_ssh]# docker run -d -p 10023:22 node2.openlab.com/demo/ssh:ubuntu_v2
7. 验证ssh服务是否配置成功:
## 查看10023端口是否监听
[root@node1 ubuntu_ssh]# ss -lntup | grep 10023
tcp LISTEN 0 128 *:10023 *:* users:(("docker-proxy",pid=11368,fd=4))
tcp LISTEN 0 128 [::]:10023 [::]:* users:(("docker-proxy",pid=11372,fd=4))
## 验证ssh是否可以免密钥链接10023
[root@node1 ubuntu_ssh]# ssh 192.168.188.111 -p 10023
最后
以上就是细心飞鸟为你收集整理的基于Dockerfile制作基于ubuntu启动ssh服务的镜像的全部内容,希望文章能够帮你解决基于Dockerfile制作基于ubuntu启动ssh服务的镜像所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复