问题描述
您能建议如何使用dockercompose来使freeradius运行吗?
version: '3'
services:
freeradius:
image: freeradius/freeradius-server
restart: always
volumes:
- ./freeradius:/etc/freeradius
ports:
- "1812-1813:1812-1813/udp"
volumes:
freeradius:
但是当我直接使用docker运行它时,它就会运行
docker run --name my-radius -i -t freeradius/freeradius-server /bin/bash
root@945f7bcb3520:/# ls /etc/freeradius
README.rst clients.conf experimental.conf huntgroups mods-config panic.gdb
proxy.conf sites-available templates.conf users
certs dictionary hints mods-available mods-enabled policy.d
radiusd.conf sites-enabled trigger.conf
但是,卷文件夹./freeradius不包含任何conf文件。
那么,如何才能使其正常工作?
解决方法
您不在此处显示Dockerfile。但是我可以猜测您正在Dockerfile中运行一个不会持久的命令。它可以从命令行运行,因为/ bin / bash会一直保留到退出。
我最近几次遇到这个问题。
,我已经启动并运行了类似的设置并加载了我的配置。我所有的配置都是根据docker hub文档完成的。这是我的 docker-compose.yml
和 Dockerfile
供参考。
(我知道我可以完全避免使用 Dockerfile,但这样做的好处是 Dockerfile 与官方文档基本上是 1:1 的..)
运行 docker-compose up -d
来运行它。这两个文件都应该在raddb的父目录中
Dockerfile
FROM freeradius/freeradius-server:latest
COPY raddb/ /etc/raddb/
EXPOSE 1812 1813
docker-compose.yml
version: '2.2'
services:
freeradius:
build:
context: .
container_name: freeradius
ports:
- "1812-1813:1812-1813/udp"
restart: always