我还没有找到在新创建的 Docker 容器中自动运行命令的方法。我经常创建一次性容器(作为测试环境,下面的示例),这些容器受益于一些额外的软件包,并且可能需要在安装软件之前进行更新。
我更喜欢直接在交互式会话中运行该命令。
docker run --interactive --tty --rm fedora bash
docker run --interactive --tty --rm ubuntu bash
Run Code Online (Sandbox Code Playgroud)
目前,我不断将命令(包括apt update && apt upgrade -y
和dnf update -y
)粘贴到容器 shell 中。
至少对于 \xe2\x80\x9ctemporary\xe2\x80\x9d 容器来说,执行此操作的一种方法是保留sleep
安装命令之后在容器中保持命令运行,然后在正在运行的容器中运行 shell:
docker exec -it $(docker run -d --rm debian:unstable bash -c "apt-get update && apt-get upgrade -y && sleep 86400") bash\n
Run Code Online (Sandbox Code Playgroud)\n此方法有一点不便,即交互式 shell 将在更新/升级完成之前启动。你\xe2\x80\x99也看不到apt-get
除非您将终端附加到容器(在不同的窗口中),否则
您还可以在安装命令后运行交互式 shell:
\ndocker run -it --rm debian:unstable bash -c "apt-get update && apt-get upgrade -y && bash"\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1303 次 |
最近记录: |