首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动运行和移除码头组合中的容器

如何自动运行和移除码头组合中的容器
EN

Stack Overflow用户
提问于 2019-05-10 05:28:53
回答 2查看 3.6K关注 0票数 1

我想转发我的ssh代理并找到这个https://github.com/nardeas/ssh-agent

步骤如下:

0。构建,导航到项目目录,并启动以下命令来构建映像:

代码语言:javascript
复制
docker build -t docker-ssh-agent:latest -f Dockerfile .

1.运行一个长寿命容器

代码语言:javascript
复制
docker run -d --name=ssh-agent docker-ssh-agent:latest

2.添加ssh键,运行一个临时容器,其中包含SSH键,其中包含从主机挂载的卷。SSH密钥id_rsa将添加到ssh-agent中(您可以用密钥名替换id_rsa ):

代码语言:javascript
复制
docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/.ssh -it docker-ssh-agent:latest ssh-add /root/.ssh/id_rsa

ssh代理容器现在可以使用了。

3.将ssh代理套接字添加到其他容器:-如果您使用的是docker-复合-这是如何将套接字转发到容器:

代码语言:javascript
复制
volumes_from:
  - ssh-agent
environment:
  - SSH_AUTH_SOCK=/.ssh-agent/socket

在撰写文件中,我向其添加步骤1如下:

代码语言:javascript
复制
services:
  ssh_agent:
    image: nardeas/ssh-agent

但是,对于步骤2,我不知道编写文件中的等效语法是什么

代码语言:javascript
复制
docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/.ssh -it docker-ssh-agent:latest ssh-add /root/.ssh/id_rsa
EN

回答 2

Stack Overflow用户

发布于 2019-05-10 05:34:13

你可以在下面这样做-

代码语言:javascript
复制
docker-compose -f my-docker-compose.yml run --rm ssh_agent bash -c "ssh-add /root/.ssh/id_rsa"

参考文献- https://docs.docker.com/compose/reference/run/

票数 0
EN

Stack Overflow用户

发布于 2019-05-10 05:45:10

docker-compose.yml文件将是

代码语言:javascript
复制
services:
  ssh_agent:
  image: docker-ssh-agent:latest
  command: ssh-add /root/.ssh/id_rsa
  volumes_from:
    - ssh-agent
  environment:
    - SSH_AUTH_SOCK=/.ssh-agent/socket
  volumes:
    - ~/.ssh:/.ssh

然后按照下面的步骤运行docker-复合命令

代码语言:javascript
复制
docker-compose -f docker-compose.yml run --rm ssh_agent
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56071196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档