标签: docker-container

Docker:使用 dockerfile 在 Windows 容器上安装 chrome

我正在尝试在我的 Windows 容器上安装 Chrome。我已经使用 dockerfile 创建了我的 docker 映像,并且我想使用此 dockerfile 安装 chrome。我尝试过使用以下命令

RUN apt-get update -qqy \
&& apt-get -qqy install \
xvfb \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
Run Code Online (Sandbox Code Playgroud)

但我有一个错误(我认为这是因为我在 Windows 容器上,并且此命令仅适用于 unbutu 容器...):

'apt-get' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

有没有办法在 Windows 容器中安装 chrome?或者任何替换 'apt-get' 的命令?

谢谢。

docker dockerfile docker-image docker-container docker-for-windows

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

在 Docker 容器内使用 ldap

我有 2 个 docker 容器。第一个 docker-container 内部是我的 lamp 应用程序,其中包含 php-7.3.4、apache2 ;第二个里面是mysql数据库。

我尝试连接第一个容器内的 LDAP 服务器。我继续进入“test-project”文件夹并配置 custom_config.inc.php

 $tlCfg->authentication['method'] = 'LDAP';

 $tlCfg->authentication['ldap_server'] = 'ldap.xyz.com';
 $tlCfg->authentication['ldap_port'] = '389';
 $tlCfg->authentication['ldap_version'] = '3';
 $tlCfg->authentication['ldap_root_dn'] = 'dc=xyz,dc=com';
 $tlCfg->authentication['ldap_bind_dn'] = 'uid=tl,ou=staff,dc=xyz,dc=com';
 $tlCfg->authentication['ldap_bind_passwd'] = 'XYZw';
 $tlCfg->authentication['ldap_tls'] = false; // true -> use tls
Run Code Online (Sandbox Code Playgroud)

当我尝试通过 ldap 凭据登录网页并抛出 http 错误 500 后

当我查看日志时,我得到:

错误: https: //i.stack.imgur.com/hST65.jpg

PHP Fatal error: Uncaught Error: Call to undefined function 
ldap_connect() in 
var/www/html/testlink/lib/functions/ldap_api.php:42\nStack trace :\n#0                     
/var/www/html/testlink/functions/ldap_api.php(165): 
ldap_connect_bind(Array)\n#1 
var/www/html/testlink/lib/functions/doAuthorize.php(200): 
ldap_authenticate('test_user', 'test')\n#2 
var/www/html/testlink/lib/functions/doAuthorize.php(90): 
auth_does_password_match(Object(tlUser), 'test')\n#3 
var/www/html/testlink/login.php(45): doAuthorize(Object(database), 
'test_user', …
Run Code Online (Sandbox Code Playgroud)

php ldap docker docker-container

4
推荐指数
1
解决办法
6965
查看次数

Docker 上的 RedisInsight 和 Docker 上的 Redis:无法连接:连接到 localhost:6379 时出现错误 99。无法分配请求的地址

根据本教程https://www.youtube.com/watch?v=XrFeRwJjWHI,我尝试在 Docker 中运行 Redis。

文件docker-compose.yml

version: "3.8"

services:
  redis:
    image: redis
    volumes:
      - ./data:/data
    ports:
      - 6379:6379
Run Code Online (Sandbox Code Playgroud)
docker pull redis
docker-compose up
docker-compose up -d
docker container ls
telnet localhost 6379
Run Code Online (Sandbox Code Playgroud)

Telnet,键入PING然后按 Enter 键(您不会看到文本),然后查看结果:PONG。键入quit退出。

Microsoft Windows [Version 10.0.19041.508]
(c) 2020 Microsoft Corporation. All rights reserved.

D:\docker>docker-compose stop redis
Stopping docker_redis_1 ... done

D:\docker>
Run Code Online (Sandbox Code Playgroud)

查看正在运行的内容

docker container ls
Run Code Online (Sandbox Code Playgroud)

你会看到,docker redis 被停止了。

docker image prune -a
docker-compose up
Run Code Online (Sandbox Code Playgroud)

Docker Redis洞察

docker run -v …
Run Code Online (Sandbox Code Playgroud)

redis docker docker-compose docker-container redisinsights

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

在 docker swarm 容器内时,如何确定容器的副本编号?

假设我有一个名为 Whale 的 docker swarm 服务,其副本数为 10

当容器启动时

运行时程序如何确定它是哪个副本编号?

IE:“我是鲸鱼复制品 10 中的 3”

docker swarm docker-swarm docker-container

4
推荐指数
1
解决办法
2249
查看次数

Docker - 如何在终端中检查 Docker 容器日志实时更新?

我有一个使用分离模式 (-d) 标志运行的 docker 容器。该容器运行的应用程序正在更新终端中的一些输出/日志。

我想在终端中实时查看容器的输出。

有没有什么方法可以在应用程序中实时更新终端中的 docker 日志?

谢谢。

terminal docker docker-container

4
推荐指数
1
解决办法
2997
查看次数

端口不是所有 Docker 网络都通用的吗?

我创建了两个docker网络

  1. 中国网络

     docker network create --subnet=172.19.0.0/16 chnetwork
    
    Run Code Online (Sandbox Code Playgroud)
  2. 内部网络

     docker network  create --internal --subnet 10.1.1.0/24 internal-network
    
    Run Code Online (Sandbox Code Playgroud)

在创建 docker 容器时我使用chnetwork

docker run -it -d --name containerone -h www.cone.net -v /var/www/html -p 3006:80 --net chnetwork --ip 172.19.0.40 --privileged magento
Run Code Online (Sandbox Code Playgroud)

后来我更改为内部网络并断开容器与chnetwork的连接

docker network connect internal-network containerone
docker network disconnect chnetwork containerone
Run Code Online (Sandbox Code Playgroud)

现在的问题是docker ps命令不显示该容器的端口,我的意思是端口在内部网络中无法访问。

当我将网络更改为chnetwork时,只有docker ps显示端口。我需要做什么才能在所有 Docker 网络中访问端口?

docker docker-container

3
推荐指数
1
解决办法
4181
查看次数

docker从容器连接到主机隧道

我想从我的docker容器内部与一个在主机中使用隧道的postgres数据库连接.在主机中,我有一个指向数据库主机的隧道:

host$ sudo netstat -tulpen  | grep 555
tcp        0      0 127.0.0.1:5555          0.0.0.0:*               LISTEN      1000       535901      18361/ssh       
tcp6       0      0 ::1:5555                :::*                    LISTEN      1000       535900      18361/ssh       
Run Code Online (Sandbox Code Playgroud)

隧道设置为:

host$ ps -aux | grep 18361
ubuntu    9619  0.0  0.0  10432   628 pts/0    S+   10:11   0:00 grep --color=auto 18361
ubuntu   18361  0.0  0.0  46652  1420 ?        Ss   Nov16   0:00 ssh -i /home/ubuntu/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -f -N -L 5555:localhost:5432 user@remotehost
Run Code Online (Sandbox Code Playgroud)

从主机我可以启动psql命令:

host$ psql -h localhost -p 5555 --username user db_name
psql (9.3.15, …
Run Code Online (Sandbox Code Playgroud)

ssh-tunnel docker docker-networking docker-container

3
推荐指数
1
解决办法
4391
查看次数

如何复制正在运行的Docker容器

我有一个正在运行的Docker容器

sudo docker ps -a                                                                                                                                                                  
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS               NAMES
c5a24953e383 gradle "bash" 22minutesagoUp 22 minutes      naughty_torvalds
Run Code Online (Sandbox Code Playgroud)

我可以复制并运行该容器吗?它的命令是什么?

docker docker-container

3
推荐指数
1
解决办法
5084
查看次数

在docker中提交子图像后如何删除父图像?

我在我的系统中安装了一个带有大约 1 GB 操作系统的 docker 映像,然后我更新并安装了其他软件,将大小推到了近 2 GB。我使用这个容器创建了一个新的子图像docker commit <cont-id> <child-name>。现在我有两个 docker 镜像,父镜像和子镜像总大小为 3 GB。由于我有一个多余的 1 GB 父映像,因此我想将其删除。

Parent  image 1 GB
Child   image 2 GB
Run Code Online (Sandbox Code Playgroud)

我试图保留子图像并尝试删除父图像,docker rmi -f <image-id>但它给出了这个错误

来自守护进程的错误响应:冲突:无法删除 5dvd3054h756(不能强制)-图像具有依赖的子图像

然后尝试了这个解决方案,我尝试过sudo docker images --filter "dangling=true" -q --no-trunc但什么也没返回,也尝试过docker system prune显示 0 GB。

我还计划将其他程序安装到 docker 内的操作系统中,因此希望从现有的子映像中生成新的子映像。我到处搜索,没有很好的解决方案来删除 docker 中的父图像,以及我阅读的原因是因为子图像使用了一些父层。生成新的子映像后,是否无法删除 docker 中的父映像?

docker docker-image docker-container

3
推荐指数
2
解决办法
4932
查看次数

如何在 docker 上远程访问 mariadb?

我创建了一个包含 mariadb 实例的 docker 容器,但我无法从我的物理机访问数据库:

在此处输入图片说明

我有来自 docker inspect 的 ip 地址和来自 docker ps 的端口,但 Sequel Pro 给了我连接失败的消息(与 Visual Studio Code 相同)。显然,从 docker 容器内部,我可以将自己连接到数据库引擎。

我哪里错了?非常感谢大家!:)


[编辑]感谢所有评论...

如果我尝试公开端口,则容器不会运行:/ 在此处输入图片说明

mysql mariadb docker docker-container

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