Docker版本18.03.1-ce,build 9ee9f40
我正在使用PowerShell在Windows上构建一个大项目.
发出命令时
docker save docker.elastic.co/kibana/kibana > deploy/kibana.docker
Run Code Online (Sandbox Code Playgroud)
我得到一个文件1.4Gb.
在CMD中运行的相同命令产生799Mb图像.
在bash中运行的相同命令产生799Mb图像.
CMD和Bash只需不到一分钟的时间来保存图像,而Powershell大约需要10分钟.
我无法在docker或MS docs中找到这种现象的正常解释.
现在"解决方案"是
Write-Output "Saving images to files"
cmd /c .\deploy-hack.cmd
Run Code Online (Sandbox Code Playgroud)
但我想找到实际的根本原因.
我正在尝试创建一个新的 postgres 数据库。
仅供初学者使用 - 创建一个新卷:
docker volume create test
Run Code Online (Sandbox Code Playgroud)
然后开始图像。
docker run -v test:/var/lib/postgresql/data -p 5432:5432 nec-postgres
Run Code Online (Sandbox Code Playgroud)
现在这是我的 Dockerfile:
FROM postgres:10.4
ENV POSTGRES_USER=user
ENV POSTGRES_PASSWORD=pass
ENV POSTGRES_DB=smdr
COPY *.sql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)
看起来很简单,根据https://hub.docker.com/_/postgres/假设创建一个数据库,如果卷为空,则在该数据库上运行初始化脚本。
当我第一次开始我的图像时,我得到了预期的结果:
/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/1_database.sql
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
Run Code Online (Sandbox Code Playgroud)
在初始化之后我看到(再次,如预期的那样)
2018-06-05 06:55:51.855 UTC [37] LOG: received fast shutdown request
waiting for server to shut down....
2018-06-05 06:55:51.859 UTC [37] LOG: aborting any active transactions
2018-06-05 …Run Code Online (Sandbox Code Playgroud)