docker - `docker start` 与 `docker run` 的选项
问题描述
我在使用一些 Docker 命令时在概念上遇到了困难。让我们假设,不完全是假设,我正在构建构建所需的图像--privileged
。我想不出办法来做到这一点。让我们进一步假设我将需要特权的步骤推迟到第一次运行,然后我忘记--privileged
为第一次运行指定。现在我有一个容器 -docker start
也不会让我指定--privileged
。docker start
当我忘记在 Dockerfile 或使用docker run
. 有没有办法解决这些问题?
示例 Dockerfile:
FROM ubuntu:14.04.5
ENV TERM linux
ENV DEBIAN_FRONTEND noninteractive
ENV REDDIT_USER reddit
RUN apt-get update
RUN apt-get install -y aptitude
RUN aptitude update
RUN aptitude upgrade -o Aptitude::Delete-Unused=1 -y
RUN aptitude install -y vim-nox git screen zsh wget software-properties-common
RUN git clone https://github.com/reddit-archive/reddit
RUN adduser --disabled-password --gecos "" reddit
# can't run this in build; instead, start the image with --privileged and then run the script manually
#RUN echo "y" | ./reddit/install-reddit.sh
CMD ["/bin/bash"]
EXPOSE 80
解决方案
除非您使用 buildx,否则您不能在构建期间以特权身份运行。但是,您可以做的是使用 对容器进行更改docker run --privileged
,然后使用docker commit
将其转换回图像:
$ docker run -ti <image>
# do your thing...
$ docker commit <container id> final-image:version
推荐阅读
- mysql - SQS 大小限制,但在 Lumen 中使用 DB 没有限制
- javascript - 多个租户 firebaseui 和 gcip-iap 无效配置
- revenuecat - 工作设置现已损坏:RevenueCat Flutter
- c# - 怎样才能深入到孩子的层次?
- swiftui - 无法在 SwiftUI 中使用 Kingfisher 将图像保存到磁盘
- untagged - 缺少必需的参数“event_type”(字符串)
- node.js - NodeJS路由在本地主机上工作但在服务器上不工作
- rest - 获取访问令牌抛出错误“请求正文必须包含以下参数:'grant_type'”
- ios - 如何使用swift将数据从一个以上的本地JSON文件加载到表格视图中的标签
- excel - 如果 3 列重复且 1 列为空白,则删除整行