如果我使用标签/标签创建容器
docker run --name some_container -d me/my_image
更新图像
docker pull me/my_image
并重新启动容器
docker restart some_container
新容器使用哪个版本?
Indocker inspect .Image给出特定图像的 id,.Config.Image给出标签。
我只想在远程 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.
我正在尝试在 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) 用例:视频游戏的自动 QA
在过去的 6 个月里,微软和 Docker 似乎付出了很大的努力来为 docker windows 容器启用 GPU 直通。
如果我们能够在 docker 中启动游戏并通过 RDP/VNC/teamviewer/任何其他方式连接到它们,以便根据需要实时查看游戏并与游戏交互(低 FPS 即可),这将对我们大有裨益。
似乎所有的要素都可以做到这一点,但我的谷歌搜索和 Docker 经验不足让我陷入困境。主要是因为,虽然已经进行了一些尝试,但它们是在两年多前完成的,当时微软还没有实现许多最新的功能。
我已经能够启动一个 docker 容器,但仅此而已。我怎样才能运行某种远程桌面/监视器服务并尝试一下?
干杯!
我是网络新手,所以我是第一次尝试。我创建了一个连接到 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 或 …
因此,我正在运行一个在日志中显示此内容的容器:
警告 overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败。要解决此问题,请将“vm.overcommit_memory = 1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。
我一生的大部分时间都在 Windows 中度过,我对 Linux 大约 80% 是一无所知的,据我所知,当设置此设置时,它会在系统范围内进行,这也会影响所有其他容器。我想这样做吗?
有没有办法只为推荐它的容器设置这个?我应该补充一下,如果有帮助的话,我正在 WSL2 模式下运行 docker 桌面。
更新:根据他的评论中的要求,我添加了这个问题所涉及的容器;它被称为Papermerge。
我在 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
有谁知道同时运行 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 映像缓存后也会发生此错误:
$ 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 没有理由无法创建线程。
我该如何解决这个问题?
我有一个 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)