我正在尝试构建用于自动部署的 docker 映像,因此我想从私有位存储桶存储库 (git) 克隆应用程序代码。
但是当我尝试构建图像时,我总是从 git clone 收到身份验证错误。
不确定是否相关,但我使用的主机正在运行 Ubuntu 18.04 和 Docker 18.09.7,版本 2d0083d
这是我的 Dockerfile:
# syntax=docker/dockerfile:experimental
FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 as devel_stage
ENV DEBIAN_FRONTEND noninteractive
# install system requirements
RUN apt-get update --fix-missing
RUN apt-get install -y --no-install-recommends build-essential
RUN apt-get install -y --no-install-recommends git
RUN apt-get install -y --no-install-recommends curl
RUN apt-get install -y --no-install-recommends ca-certificates
RUN apt-get install -y --no-install-recommends libjpeg-dev
RUN apt-get install -y --no-install-recommends libpng-dev
RUN apt-get install -y --no-install-recommends python3-dev
RUN apt-get install …Run Code Online (Sandbox Code Playgroud) 我知道,在 Windows 或 macOS 上使用 Docker Desktop 时,在容器中使用绑定挂载会带来性能损失,并且首选卷来提高性能。但是,我找不到任何有关在 Linux 上运行 Docker 时受到任何处罚的信息。
在 Linux 上的 Docker 上使用绑定挂载时是否会产生性能损失,或者由于 Docker 在 Linux 上本机运行,因此没有性能损失?
在在 Ubuntu 上安装 Docker 引擎的Docker 文档中,有一个从存储库安装的选项(以及下载 deb 文件并安装它的选项,以及使用也使用存储库的便捷脚本)。但我发现如果我只是跑
sudo apt-get install docker.io
Run Code Online (Sandbox Code Playgroud)
在我的机器上,它将完美下载并运行 Docker。
我的问题是:从自己的存储库安装 docker 或从已配置的默认存储库安装 docker 有区别吗?
另外,在查看文档时,您应该安装 3 个软件包docker-ce docker-ce-cli,而containerd.io从默认存储库安装时,您只需安装docker.io.
这些不同的软件包是什么以及它们包含什么?
我有一个服务在端口 的主机上运行8545。我有几个需要访问主机上的此服务的 docker 容器。主机运行的是ubuntu。我已经配置成功了
extra_hosts:
- "host.docker.internal:host-gateway"
Run Code Online (Sandbox Code Playgroud)
在 docker-compose 文件中,我用它来启动我的 docker 容器。但是,我发现容器无法访问host.docker.internal:8545,除非我使用以下命令打开主机上的该端口
ufw allow 8545
Run Code Online (Sandbox Code Playgroud)
然而,这会向任何人开放该端口,这是不希望的。
如何仅向主机上运行的 docker 容器开放此端口?
编辑:我已经看到该docker0接口的 IP 为172.17.0.1. 我尝试运行sudo ufw allow from 172.17.0.1,但这并没有使我的容器能够访问8545主机上的端口。
root@localhost:~/code/metis/ops# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Anywhere ALLOW 172.17.0.1
22/tcp (v6) ALLOW Anywhere (v6)
root@localhost:~/code/metis/ops# docker exec -it ops_l2geth-mainnet_1 /bin/sh
/ # geth attach http://host.docker.internal:8545
Fatal: Failed to start the JavaScript …Run Code Online (Sandbox Code Playgroud) 每当我尝试在没有互联网连接的情况下运行 docker 时,我都会收到这样的奇怪消息
docker ps
2015/05/22 23:31:45 Get http:///var/run/docker.sock/v1.12/containers/json: dial unix /var/run/docker.sock: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我连接到网络后,一切正常。
我不知道这两件事是如何联系/相关的。
我正在使用 macOS Sierra 10.12,我正在尝试创建新的 docker-machine,但我遇到了以下问题:
mbp:~ alexus$ docker-machine create --driver virtualbox default
Running pre-create checks...
Creating machine...
(default) Copying /Users/alexus/.docker/machine/cache/boot2docker.iso to /Users/alexus/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我正在使用最新的 Docker Toolbox 和最新的 VirtualBox。
我试图让我的应用程序在 Docker 中正常运行,但遇到了问题。
该应用程序以 PASV 模式连接到远程 FTP 服务器,并 PUT 文件。非常简单,无需 docker 即可正常工作。FTP 服务器和客户端都不在任何 NAT 之后;但是客户端变成了 NAT,因为我使用的是 Docker 桥接网络。(使用默认网桥配置http://pastie.org/10954592)
如果我在运行客户端应用程序时查看 FTP 服务器上的 tshark,它会交换大量数据包,因此它正在“连接”到服务器,但应用程序没有收到任何回复。这让我假设当 FTP 服务器尝试在该经验端口上响应时,它不会从主机操作系统路由回 Docker 容器。
所以,希望总结一下,有没有什么好的方法可以将这些 pasv 端口正确转发到 docker 网桥?约束:我无法控制生产中的 FTP 服务器,所以我不能简单地硬编码 iptables 的 pasv 端口列表。
感谢您的任何想法!
尝试在 Docker 工具箱中启动 Hello World 应用程序。
操作系统:Windows 7 Professional SP1
从这里安装,安装过程中没有错误。
运行“Docker Quickstart Terminal”,然后输入
$ docker run hello-world
Run Code Online (Sandbox Code Playgroud)
我得到
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pulling fs layer
E:\Sanjay\Tensor\Docker Toolbox\docker.exe: open /mnt/sda1/var/lib/docker/tmp/Ge
tImageBlob474134307: read-only file system.
See 'E:\Sanjay\Tensor\Docker Toolbox\docker.exe run --help'.
Run Code Online (Sandbox Code Playgroud)
任何想法如何进行?
不确定这是否有帮助:
$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.12.3
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 0
Dirperm1 Supported: true …Run Code Online (Sandbox Code Playgroud) 我想运行一个 Docker 容器,它只在所述主机上的 docker 实例中内部公开它的端口。这意味着我不希望它公开。
如何从命令行执行此操作?下面的代码公开打开它。
docker run -p 27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud) 我正在使用 Docker 扩展在 Plesk Onyx 托管服务器上运行 Docker 容器。除了电子邮件,一切都很好。如何将我的 smtp 服务器链接到容器或修改 Docker 文件以设置外部 smtp 服务器?我在那里发现的一切似乎都与 Docker 的 Plesk 版本不匹配。