无法在 docker 容器中找到包 apt-get

Unable to locate package apt-get in docker container

我正在尝试在 docker 中创建一个容器;它通常工作得很好,但我突然 运行 遇到了一个我知道如何解决的问题。

FROM ubuntu:14.04

RUN apt-get update && \
    apt-get upgrade -y \
    apt-get install -y openssh-server && \
    mkdir /var/run/sshd

RUN echo root:root | chpasswd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

当它进入 apt-get update 时会抛出以下错误:

如果图像是基于标准 ubuntu 14.04,这怎么可能?

这行得通。

FROM ubuntu
RUN apt-get update  -y
RUN apt-get upgrade -y
RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd

RUN echo root:root | chpasswd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

您没有使用 && 结束 apt-get upgrade 命令,因此它尝试在下一行安装 "packages"。我喜欢将我的 && 放在每一行的开头,因为它更容易让我看到何时发生(并使 copy/paste 更容易一些):

FROM ubuntu:14.04

RUN apt-get update \
 && apt-get upgrade -y \
 && apt-get install -y \
      openssh-server \
 && mkdir /var/run/sshd

RUN echo root:root | chpasswd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]