我有
testapi() { docker-compose -f /home/me/projects/api/docker-compose.yml run -e "API_BRANCH=${1-master}" --rm api_test ;}
Run Code Online (Sandbox Code Playgroud)
它会导致错误:
$ src
bash: /home/me/.bash_profile: line 56: syntax error near unexpected token `('
bash: /home/me/.bash_profile: line 56: `testapi() { docker-compose -f /home/me/projects/api/docker-compose.yml run -e "API_BRANCH=${1-master}" --rm api_test ;}'
Run Code Online (Sandbox Code Playgroud)
运行会产生帮助消息:
$ testapi
Run a one-off command on a service.
For example:
$ docker-compose run web python manage.py shell
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏,ty
如何创建一个针对另一个 mysql 服务器容器执行 mysql 脚本的 mysql 客户端 docker 容器?我应该使用哪个基础容器?
我使用yum( RUN yum install -y wireshark wireshark-qt) 安装了wireshark,但当我通过 ssh 进入容器时无法运行它。
# tshark
tshark: Couldn't run /usr/sbin/dumpcap in child process: Operation not permitted
Are you a member of the 'wireshark' group? Try running
'usermod -a -G wireshark _your_username_' as root.
Run Code Online (Sandbox Code Playgroud)
我尝试运行usermod -a -G wireshark root(当我 ssh 进入机器时,它是以 root 身份运行的)。这没有帮助。
也尝试过su -c '/usr/sbin/tshark'没有成功。
我应该怎么办?
从运行的容器拆卸默认击键顺序为Ctrl+ p Ctrl+q在这两个码头工人和Kubernetes。
对于 Docker(例如docker run),我可以--detach-keys在命令行或detachKeys~/.docker/config.json 中更改它。
通过 kubectl 运行容器时,我找不到类似的东西。它是否具有类似的可配置性?
我是 Docker 新手,我有一个运行 Ubuntu\xe2\x80\xaf16 的容器。
\n\n我通常使用以下命令连接容器:
\n\ndocker exec -it 7e3 /usr/bin/zsh\nRun Code Online (Sandbox Code Playgroud)\n\n然后,当我在 Docker 内使用 shell 时,\n当我 \xc2\xa0type Ctrl+P显示上一个命令时,\n终端没有刷新,什么也没有显示。\xc2\xa0\n我必须按其他东西才能刷新它.\xc2\xa0\n我的终端是 macOS Mojave 上的 iTerm。
\n\n我在 Google 上进行了一些搜索,例如“docker shell notfresh”,\n但我找不到任何有用的东西。
\n我正在使用 docker,当我启动一些容器时,它会启动docker网络接口。有了它,守护进程设置了2 条新路由,包括一条新的默认路由,覆盖了我的旧路由。当然,它会禁用我的互联网连接。我必须选择:容器还是互联网。
\nwlp8s0 是由 DHCP 提供的,我想也是 docker 提供的。
\n我在用着:
\n\n\nDebian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux
\nDocker 版本 18.09.5,内部版本 e8ff056
\n
启动docker网络之前我的路由表是:
\nDestiny Gateway Mask. Options Metric Ref use Iface\ndefault _gateway 0.0.0.0 UG 0 0 0 wlp8s0\n10.0.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp8s0\n172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0\nRun Code Online (Sandbox Code Playgroud)\n启动任何容器后:
\nDestiny Gateway Mask. Options Metric Ref use Iface\ndefault 0.0.0.0 0.0.0.0 U 0 0 0 …Run Code Online (Sandbox Code Playgroud) Docker 容器的ENTRYPOINT是如何工作的?我有一个基本的 docker 图像,它有一个 ENTRYPOINT 脚本,我正在构建另一个图像,它有一个另外的 ENTRYPOINT 脚本。
当我运行图像时,两个 ENTRYPOINT 脚本都会运行吗?
我localhost:8000在主机上有一个打开的。具体来说:
$ php -S localhost:8000
PHP 7.1.19 Development Server started at Tue Jul 16 09:49:08 2019
Listening on http://localhost:8000
Run Code Online (Sandbox Code Playgroud)
我可以在主机上执行curl -i http://localhost:8000以获得响应,我也可以通过主机浏览器访问它,完全没有问题。
但是,当我尝试访问 Mac 上 docker 容器上的主机时,连接被拒绝:
$ curl -i http://host.docker.internal:8000
curl: (7) Failed to connect to host.docker.internal port 8000: Connection refused
$ telnet host.docker.internal 8000
Trying 192.168.65.2...
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)
host.docker.internal从命令中可以看出,docker 容器可以解析 DNS telnet,我也可以ping,但连接被拒绝。
$ ping host.docker.internal
PING host.docker.internal (192.168.65.2) 56(84) bytes of data.
64 …Run Code Online (Sandbox Code Playgroud) 我正在使用 Docker 为 Web 应用程序创建开发设置。我们有在 Windows、Mac 和 Linux 上运行的开发人员。每个人都会使用 Linux 容器,但仍然存在仅影响 Windows 用户的问题。
我不希望以不同于生产的方式运行应用程序。相反,需要与众不同的是围绕开发人员设置的工具。
有没有办法从 Docker 容器中检测主机的操作系统?
docker-compose up在 WSL2 上使用 Docker 桌面在 Windows PowerShell 中运行时,我得到
Creating network "test_default" with the default driver
Building master
failed to get console mode for stdout: The handle is invalid.
Run Code Online (Sandbox Code Playgroud)
有一个提示无法获得 stdout 的控制台模式:句柄无效:
问题是,我在构建图像时看不到输出
如果有警告,该怎么办?
我只有非常模糊的想法可能会有所帮助,至少如果是关于缺少标准输出的终端。这只是一个头脑风暴:
DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-terminal)。TERM=$TERM DEBIAN_FRONTEND=dialog apt-get install -y MY_COMMAND。不知何故,我从来没有让它在 Dockerfile 中工作,但也许它在 docker-compose 命令中工作?DEBIAN_FRONTEND=noninteractive apt-get install -y MY_COMMAND。-tty参数获取伪终端。