Simple container to host an smb share with one user account
This will start an smb share, \data, on the host to a random docker volume. The username is admin and the randomly generated password is on the first line of the logs.
docker pull nickadam/smb-share
docker run -d --name myshare -p 445:445 -p 139:139 nickadam/smb-share
docker logs myshareIn this example we specify the username, password, and mount a local volume using the current users UID and GID.
docker run -d --name myshare \
  -p 445:445 -p 139:139 \
  -v "$PWD":/data \
  -e SMB_USER="$USERNAME" \
  -e PASSWORD="badpassword" \
  -e SMB_UID=$UID \
  -e SMB_GID=$GID \
  nickadam/smb-sharePersistent data shared from /data
If the data directory is empty, it will be chowned with the UID and GID of the SMB user.
Expose ports 445 and 139
| Name | Value if not specified | Description | 
|---|---|---|
| SHARE_NAME | data | The name of the share | 
| SMB_USER | admin | The username with permission to the share | 
| PASSWORD | A password will be randomly generated and displayed in the logs if not specified | |
| PASSWORD_FILE | Path to a file containing the plain text password, can be used instead of PASSWORD | |
| SMB_UID | 1000 | The user id of the user | 
| SMB_GID | 1000 | The group id of the user | 
| FILEMODE | 644 | New files created via smb will have these permissions | 
| DIRMODE | 755 | New directories created via smb will have these permissions | 
To prevent windows from attempting to access the share with the local user or guest it's a good idea to use the net command to specify the user and password.
Prompt for password:
net use /user:admin "\\server.example.com\data"Specify password:
net use /user:admin "\\server.example.com\data" badpasswordSee docker-compose.yml for more info and docker swarm example