运行LinuxServer的容器
镜像的结构
基础镜像
我们制作了几个用于构建我们主要程序的基础镜像,这些主要有以下两点好处:
- 多个不同的镜像使用相同依赖于相同的基础镜像,会减少意外的发生。
- 充分利用Docker的镜像分层系统,来减少主机上镜像的占用空间。在本地运行多个基于同一基础映像的容器将重复使用同一个基础镜像,不会再额外下载。
/config 卷
为了统一我们制作的镜像,我们为各个应用程式配置了相同的目录结构,所以我们的每个镜像内部都有/config
卷用于存储程序的配置文件。除了少数的几个特殊镜像外,其他的镜像我们都会将这个卷映射出来。
之所以这么做,是因为我们希望能用一个简单的方式回答最常被问的问题“程序的数据都保存在哪里?” - “都在 /config
里”。如果在创建容器的时候并没有映射此目录,那么你运行的容器的数据在容器被删除或重建后将一同消失。
[!TIP]
如果是通过portainer创建的容器,即使没有映射任何容器内的目录。portainer也会自动创建一个匿名卷来保存数据。
创建容器
通过我们的镜像创建容器时,你必须使用 docker create
或 docker run
。创建镜像的每一条命令都可以使用下面这种格式:
docker create \
--name=<container_name> \
-v <path_to_data>:/config \
-e PUID=<uid> \
-e PGID=<gid> \
-p <host_port>:<app_port> \
linuxserver/<image_name>