通过docker-compose拉出ssh-client容器

时间:2017-11-15 18:39:45

标签: bash docker ssh docker-compose dockerfile

我是 Docker 的新手,可能听不懂。

我有一个app容器和一个dockerfile

我想在ssh-client容器中安装app。 我希望能够运行ssh命令从app容器中获取一些外部IP。

我知道最简单的方法是添加

RUN apk update && apk add openssh-client bash

到我的dockerfile,但我想使用一些现成的图像,所以我的所有容器都可以使用相同的图像。

是否可以这样做?

2 个答案:

答案 0 :(得分:2)

如果您搜索所有公共图像所在的dockerhub,您会发现所有“ssh-client”流行图像都只是建立在高山之上并按照您描述的方式安装openssh-client

因此使用这些现有图像没有明显的好处。只需通过以下方式安装ssh-client:

RUN apk update && apk-install openssh-client

答案 1 :(得分:1)

撰写Dockerfilehttps://docs.docker.com/engine/reference/builder/):

FROM alpine:latest
# install ssh-client and bash
RUN apk --no-cache add openssh-client bash
# example ssh usage to print version
ENTRYPOINT ["ssh", "-V"]

使用以下代码构建并运行它:docker build -t ssh . && docker run -t ssh ssh 或者使用Docker-Compose。

使用docker build构建后,您可以在Dockerfiles中的其他项目中重用ssh Docker镜像。

FROM ssh
...

使用Docker-Compose docker-compose.yml

version: '3'
services:
  ssh:
    build: .
    image: ssh

您可以根据需要在撰写文件中添加多个服务。 上面的docker compose文件使用上面的Dockerfile来构建你的ssh docker镜像。 请参阅撰写文件参考:https://docs.docker.com/compose/compose-file/