标签: docker

编写 bash 函数时出现意外标记“(”附近的语法错误

我有

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

linux bash ubuntu docker

6
推荐指数
1
解决办法
4340
查看次数

如何创建一个针对另一个 mysql 服务器容器执行 mysql 脚本的 mysql 客户端 docker 容器?

如何创建一个针对另一个 mysql 服务器容器执行 mysql 脚本的 mysql 客户端 docker 容器?我应该使用哪个基础容器?

mysql docker

6
推荐指数
1
解决办法
1万
查看次数

在centOS docker容器内运行wireshark

我使用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'没有成功。

我应该怎么办?

centos wireshark docker

6
推荐指数
2
解决办法
5368
查看次数

如何使用 kubectl 像 Docker 的 detachKeys 一样配置分离键序列?

从运行的容器拆卸默认击键顺序为Ctrl+ p Ctrl+q在这两个码头工人和Kubernetes。

对于 Docker(例如docker run),我可以--detach-keys在命令行或detachKeys~/.docker/config.json 中更改它。

通过 kubectl 运行容器时,我找不到类似的东西。它是否具有类似的可配置性?

linux docker

6
推荐指数
1
解决办法
493
查看次数

在 Docker 中使用 shell 时,上一个命令 (Ctrl+P) 不会刷新

我是 Docker 新手,我有一个运行 Ubuntu\xe2\x80\xaf16 的容器。

\n\n

我通常使用以下命令连接容器:

\n\n
docker exec -it 7e3 /usr/bin/zsh\n
Run 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

zsh shell docker

6
推荐指数
0
解决办法
550
查看次数

Docker 正在创建另一个默认网络路由,覆盖默认路由并禁用互联网连接

我正在使用 docker,当我启动一些容器时,它会启动docker网络接口。有了它,守护进程设置了2 条新路由,包括一条新的默认路由,覆盖了我的旧路由。当然,它会禁用我的互联网连接。我必须选择:容器还是互联网。

\n

wlp8s0 是由 DHCP 提供的,我想也是 docker 提供的。

\n

我在用着:

\n
\n

Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux

\n

Docker 版本 18.09.5,内部版本 e8ff056

\n
\n

启动docker网络之前我的路由表是:

\n
Destiny         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\n
Run Code Online (Sandbox Code Playgroud)\n

启动任何容器后:

\n
Destiny         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)

networking linux routing docker

6
推荐指数
0
解决办法
1735
查看次数

我可以添加额外的 docker 入口点脚本吗?

Docker 容器的ENTRYPOINT是如何工作的?我有一个基本的 docker 图像,它有一个 ENTRYPOINT 脚本,我正在构建另一个图像,它有一个另外的 ENTRYPOINT 脚本。

当我运行图像时,两个 ENTRYPOINT 脚本都会运行吗?

docker

6
推荐指数
2
解决办法
4473
查看次数

在 docker 容器中使用 host.docker.internal 拒绝连接

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)

networking dns bash ubuntu docker

6
推荐指数
1
解决办法
1万
查看次数

Docker,检测主机操作系统

我正在使用 Docker 为 Web 应用程序创建开发设置。我们有在 Windows、Mac 和 Linux 上运行的开发人员。每个人都会使用 Linux 容器,但仍然存在仅影响 Windows 用户的问题。

我不希望以不同于生产的方式运行应用程序。相反,需要与众不同的是围绕开发人员设置的工具。

有没有办法从 Docker 容器中检测主机的操作系统?

docker

6
推荐指数
1
解决办法
2479
查看次数

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 的控制台模式:句柄无效

问题是,我在构建图像时看不到输出

如果有警告,该怎么办?

我只有非常模糊的想法可能会有所帮助,至少如果是关于缺少标准输出的终端。这只是一个头脑风暴:

  • 安装一个等于“console-setup”的包(例如 gnome-terminal with 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参数获取伪终端。

linux console stdout docker docker-compose

6
推荐指数
0
解决办法
7352
查看次数

标签 统计

docker ×10

linux ×4

bash ×2

networking ×2

ubuntu ×2

centos ×1

console ×1

dns ×1

docker-compose ×1

mysql ×1

routing ×1

shell ×1

stdout ×1

wireshark ×1

zsh ×1