The default cyrus-sasl package for Alpine Linux didn't support LDAP so I built this image which installs it from source.
docker run -d \
--name saslauthd \
--volume /etc/shadow:/etc/shadow:ro \
--volume /etc/passwd:/etc/passwd:ro \
dweomer/saslauthd -a shadow -d 1
ldap_servers: ldap://10.20.30.40/
ldap_search_base: DC=example,DC=com
ldap_filter: (&(objectClass=Person)(sAMAccountName=%u))
ldap_bind_dn: <Bind RDN>,ou=Service Accounts,DC=example,DC=com
ldap_password: <password>
docker run -d \
--name saslauthd \
--volume $(pwd)/saslauthd.conf:/etc/saslauthd.conf:ro \
dweomer/saslauthd
docker run -it --rm \
--entrypoint /usr/sbin/testsaslauthd \
--volumes-from saslauthd \
dweomer/saslauthd -u <your local username> -p <your password>