首页 > 解决方案 > 如何在不通过 jupyter notebook 运行的 docker 映像中定义设置

问题描述

我正在尝试从https://hub.docker.com/r/fbcotter/docker-tensorflow-opencv/运行以下 docker映像

FROM tensorflow/tensorflow:1.8.0-py3
RUN apt-get update
RUN apt-get install -y \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libjasper-dev \
    libavformat-dev \
    libhdf5-dev \
    libpq-dev
RUN pip3 --no-cache-dir install \
 numpy \
 hdf5storage \
 h5py \
 scipy \
 py3nvml

WORKDIR /
ENV OPENCV_VERSION="3.4.1"
RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip \
&& unzip ${OPENCV_VERSION}.zip \
&& mkdir /opencv-${OPENCV_VERSION}/cmake_binary \
&& cd /opencv-${OPENCV_VERSION}/cmake_binary \
&& cmake -DBUILD_TIFF=ON \
 -DBUILD_opencv_java=OFF \
 -DWITH_CUDA=OFF \
 -DENABLE_AVX=ON \
 -DWITH_OPENGL=ON \
 -DWITH_OPENCL=ON \
 -DWITH_IPP=ON \
 -DWITH_TBB=ON \
 -DWITH_EIGEN=ON \
 -DWITH_V4L=ON \
-DBUILD_TESTS=OFF \
 -DBUILD_PERF_TESTS=OFF \
 -DCMAKE_BUILD_TYPE=RELEASE \
 -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") \
 -DPYTHON_EXECUTABLE=$(which python3) \
 -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; 
  print(get_python_inc())") \
 -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; 
 print(get_python_lib())") .. \
&& make install \
&& rm /${OPENCV_VERSION}.zip \
&& rm -r /opencv-${OPENCV_VERSION}
RUN pip3 install -q keras==2.3.1
RUN pip3 install pyzmq
RUN pip3 install pillow
RUN  mkdir -p /edge_app/src
WORKDIR /edge_app/src
COPY . ./
#CMD ["python","streamer.py"]

运行 docker 镜像的命令

 docker run --rm -it -p:ip:port:port test

当我运行上面的 docker 镜像时,我可以通过 Jupyter notebook 访问它。我的问题是如何禁用 jupyter notebook,因为我想通过 bash 访问 docker 容器。谢谢,非常感谢您的帮助。

标签: dockerjupyter-notebookdockerfile

解决方案


您可以使用自定义命令直接运行您的容器:

 docker run -it -p port:port test /bin/bash

推荐阅读