通过docker-compose拉ssh-client容器

我是Docker的新手,可能不明白。

我有一个app容器和一个dockerfile

我想安装一个ssh-client app容器。 我希望能够运行ssh命令从app容器到达一些外部IP。

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

RUN apk update && apk add openssh-client bash

到我的dockerfile ,但我想使用一些准备好的形象,所以我所有的容器可以使用相同的一个。

有可能吗?

如果您在dockerhub上search所有公共图片所在的位置,您会发现所有的“ssh-client”stream行图片都是在alpine顶部build立的,并且完全按照您描述的方式安装openssh-client

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

 RUN apk update && apk-install openssh-client 

编写一个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"] 

构build并运行它: docker build -t ssh . && docker run -t ssh ssh 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来构build你的ssh docker镜像。 请参阅撰写文件参考: https : //docs.docker.com/compose/compose-file/