Skip to main content
 首页 » 编程设计

docker之如何在 Dockerfile 中指定镜像是交互式的

2024年02月24日13over140

我创建了一个运行命令行工具的 docker 容器。容器应该是交互式的。我是否能够在 Dockerfile 中指定容器始终以交互模式启动?

作为引用,这是 dockerfile:

FROM ubuntu:latest 
 
RUN apt-get update && apt-get -y install curl 
 
RUN mkdir adr-tools && \ 
    cd adr-tools && \ 
    curl -L https://github.com/npryce/adr-tools/archive/2.2.0.tar.gz --output adr-tools.tar.gz && \ 
    tar -xvzf adr-tools.tar.gz && \ 
    cp */src/* /usr/bin && \ 
    rm -rf adr-tools 
 
CMD ["/bin/bash"] 

编辑: 我知道 run 命令的 -it 选项。我明确要求在 docker 文件中找到一种方法来执行此操作。

编辑2: 这不是 Interactive command in Dockerfile 的重复项因为我的问题解决了如何避免指定给 docker run 的参数的问题,而有利于在 Dockerfile 中指定它们,而假定的重复项解决了 docker 本身构建镜像期间的交互式输入问题.

请您参考如下方法:

许多 docker run 选项只能在命令行或通过更高级别的包装器(shell 脚本、Docker Compose、Kubernetes 等)指定。除了端口映射和网络设置之外,“interactive”和“tty”选项只能在运行时设置,并且您不能在 Dockerfile 中强制这些选项。