代码之家  ›  专栏  ›  技术社区  ›  aquiseb

Docker基础,如何保存已安装的包和已编辑的文件?

  •  1
  • aquiseb  · 技术社区  · 8 年前

    我能正确理解Docker吗?

    1. docker run -it --rm --name verdaccio -p 4873:4873 -d verdaccio/verdaccio

    获取verdaccio(如果它在我的服务器上尚不存在),并在特定端口上运行它。-把它拆开,这样我就可以离开终端,让它继续正常运行?

    1. docker exec -it --user root verdaccio /bin/sh

    让我ssh进入正在运行的容器。不过,我添加的任何apk包都将丢失,如果我 rm

    1. 因为我需要编辑配置.yaml出现在 /verdaccio/conf/config.yaml

      V_PATH=/path/on/my/server/verdaccio; docker run -it --rm --name 
      verdaccio -p 4873:4873 \
      -v $V_PATH/conf:/verdaccio/conf \
      -v $V_PATH/storage:/verdaccio/storage \
      -v $V_PATH/plugins:/verdaccio/plugins \
      verdaccio/verdaccio
      

    但是这个命令会抛出

    fatal--- cannot open config file /verdaccio/conf/config.yaml: ENOENT: no such file or directory, open '/verdaccio/conf/config.yaml'
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Henry    8 年前

    你可以用 docker commit 基于容器生成新图像。

    然而,更好的方法是使用 Dockerfile 建立一个基于 verdaccio/verdaccio 做了必要的改变。这使得这个过程很容易重复(例如,如果一个新版本的基础图像出来)。

    推荐文章