首页 > 解决方案 > 如何使用 docker exec 命令在 CLI 容器中运行 sh 脚本?

问题描述

我想创建 s sh 脚本,但它在执行“docker exec -it cli bash”时停止并且不转到下一行。如何在 root 上运行其他命令?

root@ee3abae377df:/opt/gopath/src/github.com/hyperledger/fabric/peer# 停在这里,我无法执行下一个命令

docker exec -it cli bash
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=peer0.org1.example.com:7051
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CHANNEL_NAME=mychannel

标签: bashshelldocker

解决方案


docker exec -it创建一个交互式docker 容器。它会在您当前的终端中启动一个新的 shell。这会阻止其余命令运行,直到您终止或退出容器。一旦您退出容器,您拥有的其余命令实际上将运行。

我认为这是不希望的。您应该考虑在自定义 Dockerfile 中为您的 docker 容器创建一个入口点,您可以在其中执行脚本中的其余命令。

如果您之前没有创建过 Dockerfile,那么 Docker 的入门指南是对所有与 docker 相关的很好的介绍。


推荐阅读