我有一个使用docker编写的系统。
version: '3'
services:
base:
container_name: base
image: <hub host>/base
build:
context: ..
dockerfile: BaseDockerfile
environment:
- PYTHONPATH=/usr/local/lib/python3.6/site-packages
volumes:
- data:/volumes/data/
postgres:
container_name: postgres
image: "postgres:latest"
ports:
- 5432:5432
现在,我使用这个docker以两种不同的方式编写文件-在线和离线。
在联机模式下运行
docker-compose build
然后
docker-compose push
然后ssh到服务器,我要部署它,拉取映像并运行(
docker-compose pull && docker-compose up
).
在我运行的脱机方法中
docker合成生成
(与第一个相同)然后
docker save
将每个图像加载到.tar文件中,然后使用
docker load -i <file name>
方法,然后运行
docker-compose up
出于某种原因,我在脱机方法中得到一个错误(与numpy包不匹配有关),但在服务器中没有。
我试过docker
system prune && docker volume prune
关于这两种方法之间的区别有什么想法吗?
编辑:
保存码头工人:
#!/usr/bin/env bash
for image in $docker_hub/base redis postgres
do
echo "Saving $image"
docker save $image | gzip > $directory/${image//$docker_hub}.tar.gz
done
图像加载:
print "Loading images"
for file in ./*.tar.gz
do
echo "Loading file: "$file
docker load -i $file
done
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 1945, in to_parquet
compression=compression, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 256, in to_parquet
impl = get_engine(engine)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 25, in get_engine
return FastParquetImpl()
File "/usr/local/lib/python3.6/site-packages/pandas/io/parquet.py", line 180, in __init__
import fastparquet
File "/usr/local/lib/python3.6/site-packages/fastparquet/__init__.py", line 8, in <module>
from .core import read_thrift
File "/usr/local/lib/python3.6/site-packages/fastparquet/core.py", line 13, in <module>
from . import encoding
File "/usr/local/lib/python3.6/site-packages/fastparquet/encoding.py", line 11, in <module>
from .speedups import unpack_byte_array
File "__init__.pxd", line 861, in init fastparquet.speedups
ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216