docker-compose.yaml 中 访问samba
时间: 2023-10-12 16:22:31 浏览: 191
要在docker-compose.yaml中访问Samba,您需要在docker-compose.yaml文件中定义一个服务,并为该服务指定所需的容器映像。您还需要指定用于访问Samba共享的卷。
以下是一个示例docker-compose.yaml文件,其中定义了一个名为"samba-client"的服务,该服务可以访问名为"samba-server"的Samba共享:
```
version: '3'
services:
samba-client:
image: alpine
volumes:
- ./data:/data
command: sh -c "apk add --no-cache cifs-utils && mount -t cifs //samba-server/share /data -o username=<username>,password=<password>"
volumes:
data:
```
在上面的文件中,我们定义了一个名为"samba-client"的服务,该服务使用Alpine容器映像,并将本地"./data"目录映射到容器中的"/data"目录。我们还在容器中运行了一个命令,该命令安装了"cifs-utils"软件包,并将Samba共享挂载到"/data"目录。
请注意,您需要将"<username>"和"<password>"替换为Samba共享的有效凭据。
相关问题
docker-compose 下部署smb共享
要在 Docker Compose 中部署 SMB 共享,您可以使用以下步骤:
1. 创建一个 Dockerfile,其中包含安装 Samba 的命令。例如:
```Dockerfile
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y samba
COPY smb.conf /etc/samba/smb.conf
CMD ["smbd", "--foreground", "--no-process-group"]
```
这个 Dockerfile 安装了 Samba 软件,并将 smb.conf 文件复制到容器中。
2. 创建一个 smb.conf 文件,其中包含共享的配置信息。例如:
```
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = smbserver
security = user
map to guest = bad user
dns proxy = no
[share]
comment = Shared Folder
path = /share
read only = no
guest ok = yes
```
这个文件定义了一个名为 share 的共享文件夹,它指向容器中的 /share 目录。
3. 创建一个 docker-compose.yml 文件,定义服务的配置信息。例如:
```yaml
version: "3"
services:
smb:
build: .
ports:
- "139:139"
- "445:445"
volumes:
- ./data:/share
restart: always
```
这个文件定义了一个名为 smb 的服务,它使用上面创建的 Dockerfile 构建镜像。它将主机的 139 和 445 端口映射到容器中的端口,并将主机上的 ./data 目录挂载到容器中的 /share 目录。restart: always 表示容器停止后会自动重启。
4. 运行 docker-compose 命令启动服务:
```
docker-compose up -d
```
这个命令会启动一个名为 smb 的容器,它会自动加载 smb.conf 文件并启动 Samba 服务。您可以使用 smb://localhost/share 访问共享文件夹。
希望这些步骤能帮助您在 Docker Compose 中部署 SMB 共享。
docker-compose 下部署 smb下的共享网络位置
要在 Docker Compose 中部署 SMB 共享并将其挂载到另一个服务中,您可以使用以下步骤:
1. 在您的 docker-compose.yml 文件中,定义一个名为 smb 的服务,并在其中挂载共享目录。例如:
```yaml
version: "3"
services:
smb:
image: dperson/samba
environment:
- USERID=1000
- GROUPID=1000
- SAMBAUSER=user1;pass1
volumes:
- ./smb.conf:/etc/samba/smb.conf
- ./data:/share
ports:
- "139:139"
- "445:445"
restart: always
your_service:
image: your_image
volumes:
- smb://smb/share:/your_mount_point
restart: always
```
这个文件定义了 smb 服务,它使用 dperson/samba 镜像,并将共享目录挂载到 /share。在 your_service 服务中,我们使用 volumes 指令将 smb://smb/share 挂载到 /your_mount_point。
2. 创建一个 smb.conf 文件,其中包含共享的配置信息。例如:
```
[share]
comment = Shared Folder
path = /share
read only = no
browsable = yes
guest ok = yes
```
这个文件定义了一个名为 share 的共享文件夹,它指向容器中的 /share 目录。
3. 运行 docker-compose 命令启动服务:
```
docker-compose up -d
```
这个命令会启动一个名为 smb 的容器,它会自动加载 smb.conf 文件并启动 Samba 服务。在 your_service 服务中,我们使用 volumes 指令将 smb://smb/share 挂载到 /your_mount_point。
希望这些步骤能帮助您在 Docker Compose 中部署 SMB 共享并将其挂载到另一个服务中。
阅读全文