编写DockerFile

276 阅读1分钟

从 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 .

image.png

在上面的命令执行完成之后,该镜像就构建成功了,直接使用该镜像启动一个容器就可以运行一个 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,也就是我们刚刚映射的端口。

实验的结果如下图,可以看到,我们成功连接到了容器。

image.png