从 Dockerfile 创建镜像
了解了上面一些常用于构建 Dockerfile 的指令之后,可以通过这些指令来构建一个镜像。如下所示,搭建一个 ssh 服务:
# 指定基础镜像
FROM ubuntu:14.04
# 安装软件
RUN apt-get update && apt-get install -y openssh-server && mkdir /var/run/sshd
# 添加用户 shiyanlou 及设定密码
RUN useradd -g root -G sudo shiyanlou && echo "shiyanlou:123456" | chpasswd shiyanlou
# 暴露 SSH 端口
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
首先,我们在之前创建的一个空目录 dir1 中编辑 Dockerfile 文件,并将上面的内容复制到该文件中,相关的命令如下所示:
# 创建目录
mkdir dir1 && cd dir1
# 编辑 Dockerfile,将上面的内容写入
vim Dockerfile
# 最后执行构建命令
docker build -t sshd:test .
在上面的命令执行完成之后,该镜像就构建成功了,直接使用该镜像启动一个容器就可以运行一个 ssh 的服务,如下所示:
docker run -itd -p 10001:22 sshd:test
这时就可以通过公网的 IP 地址,以及端口 10001,并且使用用户 shiyanlou,密码 123456,远程通过 ssh 连接到该容器中了。
这里我们使用回环地址来进行测试,即自己请求自己的 ssh 连接。
首先安装 openssh 客户端,对应的命令为 apt-get install openssh-client。然后连接本机的 ssh-server,使用的命令为 ssh -p 10001 shiyanlou@127.0.0.1,这里的 -p 10001 即使用端口 10001,也就是我们刚刚映射的端口。
实验的结果如下图,可以看到,我们成功连接到了容器。