我想创建一个Docker Image作为可执行文件,用户将令牌作为环境变量传递给它.可执行文件具有用户应通过docker CMD传递的子命令(通过Env考虑git和身份验证).但是,Docker不会将CMD附加到入口点.我的Dockerfile的相关部分如下所示:
ENTRYPOINT ["/bin/sh", "-c", "/usr/bin/mycmd --token=$MY_TOKEN"]
CMD ["pull", "stuff"]
Run Code Online (Sandbox Code Playgroud)
因此,如果此容器在没有任何CMD覆盖的情况下执行,并且secret作为MY_TOKEN变量,我会期望
mycmd --token=secret pull stuff
Run Code Online (Sandbox Code Playgroud)
被执行.如果用户使用覆盖启动容器,例如
docker run -it -e MY_TOKEN=secret myimage push junk
Run Code Online (Sandbox Code Playgroud)
我期待
mycmd --token=secret push junk
Run Code Online (Sandbox Code Playgroud)
被执行.但是,如上所述,只有mycmd --token=secret执行,CMD才会被忽略 - 无论我是在启动时覆盖它还是在Dockerfile中设置它.
我正在VSCode 容器内使用 VSCode 编写代码。
我可以在开发容器内打开终端,但我不知道如何在本地计算机中打开(VSCode 集成)终端。
我当然可以打开一个单独的终端应用程序,例如 iTerm2,但使用 VSCode 的集成终端面板要方便得多。是否可以使用 VSCode 开发容器打开本地终端?
我在 Ubuntu 服务器主机上有一个 Docker Ubuntu 仿生容器。从容器中,我可以看到主机驱动器安装为 /etc/hosts,它不是目录。尝试在不同的位置卸载和重新安装但抛出permission denied错误,当我以 root 身份尝试时会发生这种情况。那么如何访问主机系统的内容呢?
我的机器中有多个停止的容器和图像。
我想清理并删除所有容器:
docker ps -a什么也不返回。
我运行docker rmi $(docker images -q)删除缓存的图像,但得到:
来自守护程序的错误响应:冲突:无法删除...(必须强制执行)-在多个存储库中引用了图像
它在说什么仓库?
有两个容器A和B.一旦容器A启动,将执行一个进程,然后容器将停止.容器B只是一个Web应用程序(比如expressjs).是否有可能从容器B中启动A?
我需要创建一个使用大文件的Docker镜像(以及因此来自该图像的容器)(包含基因组数据,因此大小达到~10GB).
我该如何优化他们的使用?我应该将它们包含在容器中(例如COPY large_folder large_folder_in_container)吗?有没有更好的方法来引用这些文件?关键是我在我的私有存储库中推送这样的容器(大于10GB)听起来很奇怪.我想知道是否有一种方法可以将一种体积附加到容器上,而无需将所有这些GB包装在一起.
谢谢.
我的 Windows docker 容器无法解析host.docker.internal,但它可以与 Linux 容器一起使用。我更愿意继续使用 Linux 容器,但我在使用旧的 .Net Framework 4.7.2 应用程序时遇到了问题。
我的应用程序连接到本地计算机上的 RabbitMQ。这在 Linux 容器中按预期工作,但在 Windows 容器中它会抛出此错误:
System.Net.Sockets.SocketException:没有这样的主机已知
我尝试过 ping host.docker.internal。
C:\app>ping host.docker.internal Ping 请求找不到主机 host.docker.internal。请检查名称并重试。
这是我的 dockerFile:
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /app
COPY ${source:-SampleApp/obj/Docker/publish} .
ENTRYPOINT ["C:\\app\\SampleApp.exe"]
Run Code Online (Sandbox Code Playgroud)
我使用的是 docker 版本20.10.2和 docker 桌面版本3.1.0。
我在 Windows 10 版本 10.0.18363 上运行。
docker docker-container docker-for-windows windows-container docker-desktop
我已经浏览了所有可以在线找到的用于构建基于docker容器的应用程序的示例.我想运行在两个docker容器中运行的两个服务:
简单的工作和许多例子.但是,在所有示例中,您需要使用SQL身份验证,并在运行SQL Server容器时提供硬编码的SA密码作为环境变量.您还需要将SA密码硬编码到ASP.Net代码中的连接字符串中(或者在配置文件中以其他方式提供它等)
在所有示例的底线中,密码在某处都是硬编码的.
在我们现在开发的大多数应用程序中,我们实际上使用Windows身份验证或使用分组的托管服务帐户.但据我所知,你不能将Windows容器添加到域,因此SQL服务器不是Windows域的一部分,所以我没有看到在这里使用Windows身份验证的方法.
那么任何人都可以用这种方式替代硬编码密码吗?
我遇到一个场景,其中我需要将 .tar 文件复制到 docker 容器中,并将内容提取到容器内的特定文件夹中。那么我们有什么特定的命令来处理这种情况吗?
我正在创建一个应用程序,它允许用户上传视频文件,然后进行一些处理。
我有两个容器。
Nginx 为用户可以上传视频文件的网站提供服务的容器。 FFmpeg安装了一些其他处理工具的视频处理容器。我想要达到的目标。我需要容器 1 才能在容器 2 上运行 bash 脚本。
据我所知,一种可能性是让它们通过 API 通过 HTTP 进行通信。但随后我需要在容器 2 中安装一个 Web 服务器并编写一个 API,这似乎有点矫枉过正。我只想执行一个 bash 脚本。
有什么建议?