gpt4 book ai didi

docker - Docker-无法从带有入口点的导入镜像中运行容器

转载 作者:行者123 更新时间:2023-12-02 20:34:51 25 4
gpt4 key购买 nike

我有一个官方的MySQL容器。我做

docker export <cont_name> > ~/Desktop/mysql.tar

接下来我做
sudo tar -c ~/Desktop/mysql.tar | docker import --change "ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" --change "ENV MYSQL_MAJOR 5.7" --change "ENV MYSQL_VERSION 5.7.8-rc" --change "ENTRYPOINT [\"/entrypoint.sh\"]" --change "EXPOSE 3306" --change "VOLUME /var/lib/mysql" --change "CMD [\"mysqld\"]" - mysql:kyriakos

最后
docker run --env "MYSQL_ROOT_PASSWORD=root" --name mysql_kyr mysql:kyriakos

我得到
exec: "/entrypoint.sh": stat /entrypoint.sh: no such file or directory
Error response from daemon: Cannot start container a15613493ee94a159ff0821974742350ae5df26b0f659932dc7cb3264295e944: [8] System error: exec: "/entrypoint.sh": stat /entrypoint.sh: no such file or directory

我在导入时做错了吗?在.tar文件中, /entrypoint.sh似乎存在。

谢谢

最佳答案

您认为这到底在做什么?

sudo tar -c ~/Desktop/mysql.tar | docker import
  • 不需要sudo,因为您只是在主目录中创建了此文件。
  • 这已经是一个tar文件。通过使用tar -c,您可以创建一个新的tar归档文件,其内容为mysql.tar。您正在将此传递给docker import
  • 这会为您提供一个包含单个文件mysql.tar的图像,因此,您当然会收到有关/entrypoint.sh不存在的错误。

  • 我认为您真正想要的是:
    docker import --change "ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
    --change "ENV MYSQL_MAJOR 5.7" \
    --change "ENV MYSQL_VERSION 5.7.8-rc" \
    --change "ENTRYPOINT [\"/entrypoint.sh\"]" \
    --change "EXPOSE 3306" \
    --change "VOLUME /var/lib/mysql" \
    --change "CMD [\"mysqld\"]" - mysql:kyriakos < mysql.tar

    真正想要的是使用Dockerfile,而不是这个奇怪的导出/导入管道。
    FROM mysql

    ENV MYSQL_MAJOR 5.7
    ENV MYSQL_VERSION 5.7.8
    ENTRYPOINT ["/entrypoint.sh"]
    EXPOSE 3306
    VOLUME /var/lib/mysql
    CMD ["mysqld"]

    关于docker - Docker-无法从带有入口点的导入镜像中运行容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32026562/

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