标签: docker

docker restart 是使用最新的镜像还是创建容器时使用的镜像?

如果我使用标签/标签创建容器

docker run --name some_container -d me/my_image

更新图像

docker pull me/my_image

并重新启动容器

docker restart some_container

新容器使用哪个版本?

Indocker inspect .Image给出特定图像的 id,.Config.Image给出标签。

docker

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

仅在 csf 防火墙后本地运行 docker 容器

我只想在远程 Ubuntu 服务器上的 csf 防火墙后面本地访问 docker 容器。我将DOCKER设置选项更改为/etc/csf/csf.conf允许1docker 更改 iptable 规则。

如果我使用 启动容器-p 8000:8000,则该端口8000将向全世界公开(我可以mydomain.com:8000按预期使用 访问网站,但不是我想要的)。如果我用 启动容器,则-p 127.0.0.1:8000:8000无法访问它mydomain.com:8000(这很好),但在这两种情况下,调用localhost:8000都会导致ERR_EMPTY_RESPONSEChrome 或curl: (52) Empty reply from server终端中出现错误。

尝试使用不同的容器和不同的端口。禁用csf后,它可以正常工作,不会出现空回复错误,因此它必须与csf相关。

如何配置csf仅在本地通过特定端口公开和访问docker容器?

旁注:我正在使用ssh admin@mydomain.com -L 8000:localhost:8000.

firewall iptables csf docker

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

在 docker 容器中运行 Unifi Controller 时无法采用新设备

我正在尝试在 docker 容器中托管 Unifi 控制器,但除非将网络模式设置为“主机”,否则我无法采用新设备(接入点)。我遵循了几个指南并打开了此处列出的所有端口。可以管理已连接的设备并查找新设备,但采用它们会导致永无休止的“采用”状态。

第一个配置基于jacobalberty/unifi:

version: "3.7"

services:
  controller:
    image: jacobalberty/unifi:arm32v7
    restart: unless-stopped
    init: true
    volumes:
      - ./data:/unifi
    environment:
      TZ: "Europe/Stockholm"
    ports:
      - "3478:3478/udp"
      - "5514:5514/udp"
      - "8080:8080"
      - "8443:8443"
      - "8843:8843"
      - "8880:8880"
      - "6789:6789"
      - "27117:27117"
      - "5656-5699:5656-5699/udp"
      - "1900:1900"
      - "10001:10001/udp"
#    network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

另一个是linuxserver.io示例的直接副本:

version: "2.1"
services:
  unifi-controller:
    image: linuxserver/unifi-controller
    container_name: unifi-controller
    environment:
      - PUID=1000
      - PGID=1000
      - MEM_LIMIT=1024M #optional
    volumes:
      - ./data:/config
    ports:
      - 3478:3478/udp
      - 10001:10001/udp
      - …
Run Code Online (Sandbox Code Playgroud)

docker unifi

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

是否可以通过 GPU 直通将 VNC/RDP 引入 Docker Windows 容器?

用例:视频游戏的自动 QA

在过去的 6 个月里,微软和 Docker 似乎付出了很大的努力来为 docker windows 容器启用 GPU 直通。

如果我们能够在 docker 中启动游戏并通过 RDP/VNC/teamviewer/任何其他方式连接到它们,以便根据需要实时查看游戏并与游戏交互(低 FPS 即可),这将对我们大有裨益。

似乎所有的要素都可以做到这一点,但我的谷歌搜索和 Docker 经验不足让我陷入困境。主要是因为,虽然已经进行了一些尝试,但它们是在两年多前完成的,当时微软还没有实现许多最新的功能。

我已经能够启动一个 docker 容器,但仅此而已。我怎样才能运行某种远程桌面/监视器服务并尝试一下?

干杯!

docker

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

通过 docker openvpn 容器路由主机

我是网络新手,所以我是第一次尝试。我创建了一个连接到 VPN 服务器的 openvpn docker。在 docker 容器内运行wget -q -O - https://api.myip.com可确认 docker 的网络已正确连接到 VPN 并且 IP 属于 VPN 服务器。现在我想尝试通过docker容器路由主机流量,并在主机流量使用docker的VPN连接的容器外部实现相同的结果。我不太清楚如何从 docker 主机 <-> 容器关系中做到这一点,所以我想也许我可以利用 docker 中的端口映射功能,并在 docker 中建立一个 Web 代理来处理任何 http/https要求。

因此,我在同一个 docker 中建立了鱿鱼和 openvpn 服务器并公开了端口 3128(因为这是鱿鱼正在侦听的端口)。主机上的 wget 命令变为: wget -q -O - https://api.myip.com -e use_proxy=yes -e http_proxy=localhost:12345

但测试表明流量没有通过 docker 的 VPN 连接。相反,结果显示通信是通过主机的互联网连接进行的。

我使用以下 Docker run 命令运行容器:

docker run --rm --cap-add NET_ADMIN --device /dev/net/tun --name vpn -it --sysctl net.ipv6.conf.all.disable_ipv6=0 -p 12345:3128 vpn-image
Run Code Online (Sandbox Code Playgroud)

上面的做法有错吗?通过多个 docker vpn 连接路由主机流量的最佳方法是什么?

以下资源表明这是可能的,但提供了特定于其用例的解决方案。如果有一个像 wget 或 …

networking proxy openvpn testing docker

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

是否可以仅为特定容器设置 vm.overcommit_memory =1 ?

因此,我正在运行一个在日志中显示此内容的容器:

警告 overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败。要解决此问题,请将“vm.overcommit_memory = 1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。

我一生的大部分时间都在 Windows 中度过,我对 Linux 大约 80% 是一无所知的,据我所知,当设置此设置时,它会在系统范围内进行,这也会影响所有其他容器。我想这样做吗?

有没有办法只为推荐它的容器设置这个?我应该补充一下,如果有帮助的话,我正在 WSL2 模式下运行 docker 桌面。

更新:根据他的评论中的要求,我添加了这个问题所涉及的容器;它被称为Papermerge。

memory settings virtual-memory docker

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

Ubuntu Server (Rasberry Pi) 上的 Docker 无法在网桥上创建端点,不支持操作

我在 Rasberry Pi 4 (aarch64) 上使用 Ubuntu 21.10,当我尝试运行 Docker(使用版本 20.10.7)容器时,它返回以下错误消息:

docker: Error response from daemon: failed to create endpoint goofy_hypatia on network bridge: failed to add the host (veth3da4a58) <=> sandbox (veth987ce17) pair interfaces: operation not supported.
ERRO[0000] error waiting for container: context canceled 
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下方法:

谢谢你的帮助。

回答:

我遇到了同样的问题,经过快速搜索后,我在这里找到了解决方案:[Bug 1947601] Cannot start docker container on ubuntu 21.10 server for 64-bit raspberry pi

您需要安装Raspberry Pi Linux 内核额外模块:

sudo apt install linux-modules-extra-raspi

networking ubuntu docker docker-networking

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

docker 和 rootless docker 并排 - 允许吗?

有谁知道同时运行 docker 和 rootless docker 是否会导致任何问题?

文档说:

If the system-wide Docker daemon is already running, consider disabling it
Run Code Online (Sandbox Code Playgroud)

但他们没有说明为什么我们应该考虑禁用它。

当docker运行时安装rootless docker时,显示以下错误:

[ERROR] Aborting because rootful Docker (/var/run/docker.sock) is running and accessible. Set --force to ignore.
Run Code Online (Sandbox Code Playgroud)

所以我们可以忽略它。但这样做安全吗?
允许并排运行还是不允许?

docker

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

Docker 中的 MariaDB 10.8.3:无法初始化计时器

即使清除 Docker 映像缓存后也会发生此错误:

$ docker run -it --rm mariadb:10.8.3
2022-06-15 11:28:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.3+maria~jammy started.
2022-06-15 11:28:14+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
        command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.EUcxIEz4Yz
        Can't initialize timers
Run Code Online (Sandbox Code Playgroud)

目前latestDocker Hub 上的镜像是 10.8.3。图像标签是ea81af801379. 这是在 64 位 Ubuntu 18.04 上。该服务器具有较低的 CPU 负载、100+GB 的可用 RAM 和 TB 的可用磁盘空间。

我有一个现有的数据库,该版本已经涉及该数据库,并且我不想冒降级的风险。

我已经看到这个问题,但 MariaDB 没有理由无法创建线程。

我该如何解决这个问题?

mariadb docker ubuntu-18.04

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

MYSQL:崩溃或 innodb_fast_shutdown = 2 关闭后不支持升级

我有一个 mysql 服务器在 docker 容器中运行。我尝试将数据库从版本 8.0.29 升级到版本 8.0.30。但是启动时,出现了如下错误:

2022-09-06T13:13:39.928986Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2022-09-06T13:13:40.701091Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-09-06T13:13:40.954725Z 1 [ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 8.0.29, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2022-09-06T13:13:40.954752Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-09-06T13:13:41.328075Z …
Run Code Online (Sandbox Code Playgroud)

mysql docker

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