通过Docker映像运行AiiDA

AiiDA团队在 Docker Hub 上维护一个 `Docker <https://www.docker.com/>`__镜像。此镜像包含一个完全预配置的AiiDA环境,这对于学习和测试特别有用。

警告

容器中存储的所有数据只会在特定容器的生命周期内保存,除非使用卷(参见下面的说明)。

开始容器

首先,下载镜像:

$ docker pull aiidateam/aiida-core:1.6.4

然后用以下命令启动容器:

$ docker run -d --name aiida-container aiidateam/aiida-core:1.6.4

您可以使用以下命令来阻止,直到所有服务都启动:

$ docker exec -t aiida-container wait-for-services

检查设置

默认配置文件是在 aiida 用户下创建的,所以要执行命令,你必须添加``–user aiida``选项。

例如,要检查verdi状态,执行:

$ docker exec -t --user aiida aiida-container /bin/bash -l -c 'verdi status'
✓ config dir:  /home/aiida/.aiida
✓ profile:     On profile default
✓ repository:  /home/aiida/.aiida/repository/default
✓ postgres:    Connected as aiida_qs_aiida_477d3dfc78a2042156110cb00ae3618f@localhost:5432
✓ rabbitmq:    Connected as amqp://127.0.0.1?heartbeat=600
✓ daemon:      Daemon is running as PID 1795 since 2020-05-20 02:54:00

交互使用容器

要“进入”容器并在shell中直接运行命令,请使用:

$ docker exec -it --user aiida aiida-container /bin/bash

这将使您作为用户“aiida”进入容器内的shell。

跨容器数据持久化

即使你停止了容器的运行或重新启动了容器,之前创建的数据也不会丢失。

$ docker stop aiida-container
$ docker start aiida-container

但如果你移除了容器,那么 所有数据 也会被移除。

$ docker stop aiida-container
$ docker rm aiida-container

持久存储数据的首选方法是 创建卷。要创建一个简单的卷,运行命令:

$ docker volume create my-data

然后确保在运行aiida容器时挂载该卷:

$ docker run -d --name aiida-container --mount source=my-data,target=/tmp/my_data aiidateam/aiida-core:1.6.4

使用上面的命令启动容器,确保容器内``/tmp/my_data``路径中存储的任何数据都存储在``my-data`` 卷中,因此即使容器被删除,数据也会保存。

What’s next?