在Docker 容器中操作宿主机

需求背景

在写gitlab的CI/CD ymal脚本时,遇到一个问题,需要将runner容器中得到的成果物放到容器外宿主机上的指定目录下。
ps:由于CI环境比较重要,删除runner容器,重新映射目录的操作不去考虑。

解决方法

配置容器与宿主机间的公钥私钥对,通过ssh协议实现容器内文件向宿主机的传送

实现步骤

  • 在宿主机上生成ssh key:
    ssh-keygen -t rsa -b 4096
  • 把 Public Key 追加到 authorized_keys:
    cat /root/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 将Private Key放到容器中
    docker cp id_rsa {container_id}:/root/.ssh
  • 在容器中安装ssh
    apt-get update
    apt-get install ssh
  • scp {容器内文件} {宿主机目录}

至此即可实现在runner跑job时,将容器内某成果物放到宿主机指定目录下

你可能感兴趣的:(docker,docker,容器,运维)