【发布时间】:2021-09-03 09:20:11
【问题描述】:
我正在尝试使用 docker-compose 文件中的选项复制 docker run 命令:
我的 Dockerfile 是:
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y
RUN apt-get install -y python3-pip python3-dev python3-opencv
RUN apt-get install -y libcanberra-gtk-module libcanberra-gtk0 libcanberra-gtk3-module
WORKDIR /
RUN mkdir /imgs
COPY app.py ./
CMD ["/bin/bash"]
我使用以下命令运行容器,以便它可以正确显示共享卷中的图像:
docker build -t docker_test:v1 .
docker run -it --net=host --env=DISPLAY --volume=$HOME/.Xauthority:/root/.Xauthority docker_test:v1
为了复制之前的命令,我尝试了下面的docker-compose文件:
version: "3.7"
services: docker_test:
container_name: docker_test
build: .
environment:
- DISPLAY=:1
volumes:
- $HOME/.Xauthority:/root/.Xauthority
- $HOME/docker_test/imgs:/imgs
network_mode: "host"
但是,在从容器内部构建映像并运行应用脚本之后(映像复制到容器上,而不是从共享卷中):
docker-compose up
docker run -ti docker_test_docker_test
python3 app.py
出现以下错误:
Unable to init server: Could not connect: Connection refused
(OpenCV Image Reading:9): Gtk-WARNING **: 09:15:24.889: cannot open display:
此外,卷似乎没有共享
【问题讨论】:
标签: docker user-interface docker-compose