gpt4 book ai didi

image - Dockerfile,如何创建镜像ubuntu 14.04

转载 作者:行者123 更新时间:2023-12-02 18:47:04 26 4
gpt4 key购买 nike

昨天有人问我如何用dockerfile制作docker镜像

这次我想补充一个问题

如果要在安装了图像的docker上使OS ubuntu 14:04成为postgresql-9.3.10,请安装Java JDK 6,复制文件(重要位置),然后在图像上创建用户。

我是否可以根据需要将多个dockerfile合并为镜像? (postgresql,java,copyfile的dockerfile,并创建一个用户,因此一个dockerfile)

例。我做了一个dockerfile“ubuntu”
其中包含命令

顶线

# Create dockerfile

# get OS ubuntu to images
FROM ubuntu: 14:04

# !!further adding a command on the following link, below the line per-dockerfile(intends command in dockerfile on the link)

# command on dockerfile postgresql-9.3
https://github.com/docker-library/postgres/blob/ed23320582f4ec5b0e5e35c99d98966dacbc6ed8/9.3/Dockerfile
# command on dockerfile java
https://github.com/docker-library/java/blob/master/openjdk-6-jdk/Dockerfile

# create a user on images ubuntu
RUN adduser myuser

# copy file/directory on images ubuntu
COPY /home/myuser/test /home/userimagedockerubuntu/test

# ?
CMD ["ubuntu:14.04"]

请帮我

最佳答案

不,您不能组合多个Dockerfile。

最佳做法是:

  • 从已包含所需内容的imabe开始,例如已经基于ubuntu的postgresql image
    这意味着,如果您的Dockerfile以以下内容开头:
    FROM orchardup/postgresql

  • 您将建立一个已经包含ubuntu和postgresql的镜像。
  • COPYRUN在dockerfile like for openjdk6中需要的内容:
    RUN \
    apt-get update && \
    apt-get install -y openjdk-6-jdk && \
    rm -rf /var/lib/apt/lists/*
    ENV JAVA_HOME /usr/lib/jvm/java-6-openjdk-amd64

  • 最后,您的默认命令应运行所需的服务:
    # Set the default command to run when starting the container
    CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]

    但是,由于 Dockerfile of orchardup/postgresql 已经包含一个 CMD,您甚至不必指定一个:您将继承自基础镜像中定义的 CMD

    关于image - Dockerfile,如何创建镜像ubuntu 14.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34014410/

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