当前位置: 首页 > 知识库问答 >
问题:

Docker提交更改将覆盖默认的启动命令

商俊智
2023-03-14

我有一个来自https://hub.docker.com/r/jupyter/datascience-notebook/.的jupyter笔记本docker图像
通常我使用这个命令运行笔记本

docker run-it--rm-p 8888:8888-v/home/folder/Projects/:/home/jovyan/Projects-e NB_UID=1000 jupyter/datascience notebook

这工作得很好,我收到了笔记本正在运行的消息。我能够创建笔记本,运行它们等。
现在我想从https://github.com/ipython-contrib/jupyter_contrib_nbextensions.安装jupyter contrib Exenstions,我遵循以下说明:https://gist.github.com/glamp/74188691c91d52770807.
使用
docker run-it jupyter/datascience-笔记本/bin/bash
命令我能够进入容器。然后我使用pip和bash来安装包。这一切进展顺利。我退出容器并使用容器id提交更改。

docker提交容器ID图像名

问题是在提交更改之后,当我运行容器时,会出现bash提示符,而不是笔记本启动命令。

有没有一种方法可以在不更改映像的启动命令的情况下提交包安装更改。或者,有没有一种方法可以在不实际运行图像的情况下编辑容器图像?

共有1个答案

连时铭
2023-03-14

问题是您提交了一个容器,该容器是由命令/bin/bash启动的。

您需要使用最初提供的命令正常启动容器,添加-d选项以释放终端:

docker run -it --rm -d --name datascience-notebook -p 8888:8888 -v /home/folder/Projects/:/home/jovyan/Projects  -e NB_UID=1000  jupyter/datascience-notebook

然后从terminal exec安装到容器中,并安装contrib Extensions

docker exec -it datascience-notebook /bin/bash

退出容器并提交映像:

docker commit datascience-notebook <imagename>

更新:

如果在容器运行时无法安装扩展,解决方案是使用Dockerfile构建自定义Docker映像

FROM jupyter/datascience-notebook
RUN <installation commands>

最后使用dockerbuild-t构建图像

 类似资料:
  • 问题内容: React Router v4 组件非常适合用于保护导航免受部分填写的表单影响的用例。 但是,如果我们想提供自己的逻辑来代替该组件使用的默认浏览器,该怎么办?React是用于创建UI的,因此这似乎是一个非常合理的用例。在github上浏览Prompt上的问题,我没有发现有人问这个问题。 有谁知道提供警报自定义行为的解决方案? 问题答案: 尽管可以在阻止通过链接在页面之间导航的同时使用自

  • 问题内容: 通过卷API创建卷时,也就是说,由于容器卷模式现在不再是最佳做法,因此: 例如,我想在/ data中存在docker卷(安装在不同的物理卷中)。 这与符号链接是不可能的,绑定绑定是可能的,但是我想知道Docker中是否有一些配置可以更改每个单独卷的默认位置。 问题答案: 您可以更改泊坞存储其文件,包括通过改变它的一个卷启动参数叫。 如果您使用systemd进行服务管理,则该文件通常位于

  • 问题内容: 我已经能够覆盖所有名称以“ android:”为前缀的主题,但是Android themes.xml还定义了似乎无法被覆盖的属性。例如: colorTheground是在Theme.Light xml中定义的,但是在此处添加它可以使我 错误。如何为整个应用程序覆盖该样式? 问题答案: 您可以用修改属性(如)的方式覆盖标准属性,只是不要忘记添加如下前缀:

  • 问题内容: 我想覆盖Java外观。我只想显示不同的按钮。 我想要Windows Look and Feel的所有功能,但仅按钮有所不同。希望你明白我的意思。 还告诉我如何制作圆形的JtabbedPane ??? 问题答案: 自定义GUI类 调用您的自定义GUI类

  • 问题内容: 我有一个模板与此: Django自动将此翻译为Terminarsesión西班牙语。但是,我想将其翻译为Cerrarsesión。 我试图将此文字添加到.po文件中,但是在编译消息时出现错误,指出该文字重复。 有没有一种方法可以更改/覆盖默认的Django翻译? 谢谢。 问题答案: 最简单的方法是收集在django.contrib.admin语言环境文件夹中找到的.po文件,然后重新编

  • 背景: Centos7 Hadoop-2.7.3 spark-2.0.1-bin-hadoop2.7 apache-hive-2.1.0-bin(仅用于启动由配置单元启动的转移服务--service转移服务) 配置了HADOOP_HOME、SPARK_HOME和HIVE_HOME等 MySQL 5.7.16 已将mysql-connector-java-5.1.40-bin.jar放入hive/l