gpt4 book ai didi

linux - 这个 docker 文件的解释?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:01 24 4
gpt4 key购买 nike

我想了解这个 docker file

FROM ubuntu:trusty
MAINTAINER Wurstmeister
RUN apt-get update; apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64/
RUN echo 'root:wurstmeister' | chpasswd
RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config

EXPOSE 22

我理解了大部分行,但我不明白下面这些行的含义?

apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server
echo 'root:wurstmeister' | chpasswd
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config

谁能帮我理解一下?我不确定该行中 wget supervisor docker.io openssh-server 的目的是什么。还有回声是什么意思?然后也是最后 sed 行。

最佳答案

apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server

使用 ubuntu 包管理器安装一堆包(基础镜像是 Ubuntu Trusty 14.04)。

-y 选项用于防止 apt 询问用户关于安装软件包及其依赖项的确认:安装无需任何输入即可继续进行。这是为了避免挂起构建 docker 镜像的过程。安装的包:

  • openssh-server: 使容器可以充当ssh服务器并处理来自ssh客户端的请求
  • wget,解压缩:实用程序
  • java:最终这个容器被用来允许用户通过ssh访问它,也许那些用户需要java
  • 主管,docker.io:我没有在 Dockerfile 本身中看到它的直接用法

然后

echo 'root:wurstmeister' | chpasswd

将用户 root 的密码更改为 wurstmeister

sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config

将文件 /etc/ssh/sshd_config 中的文本 PermitRootLogin without-password 替换为 PermitRootLogin yes 以允许 root 用户使用密码登录或不使用(例如,使用公钥)。

一条重要的一般说明:If you run SSHD in your Docker containers, you're doing it wrong!

关于linux - 这个 docker 文件的解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com