通过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
编写一个Dockerfile
( https://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/