Error mounting persistent volume on SELinux systems

In some cases, primarily when using a Linux distribution that uses SELinux to provide access control for Docker containers, when starting an Appliance Container and mounting a persistent volume, the container fails to start with Permission denied errors appearing in the Docker logs or as console output.

Use the z switch to the -v mount option to resolve it.

Example: SELinux Volume Error


[root@dc-a3100-3740 ~]# docker run -it --env=DS_MANAGER_EXTERNAL_CONNECT_IP=192.168.28.141 
--env=DS_MANAGER_EXTERNAL_CONNECT_PORT=8503 -p 8503:443 -p 8502:80 
-v /home/docker-persistence/docker-nat-mgr2:/container-persistence:rw 
--hostname=“docker-nat-mgr2” 1bb97d13f249
Usage of loopback devices is strongly discouraged for production use. 
Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` 
to suppress this warning.
[....] Configuring container persistence...find: `/run/sendsigs.omit.d': No such file or directory
find: `/run/mysqld': No such file or directory
find: `/run/network': No such file or directory
find: `/run/apache2': No such file or directory
find: `/run/rdnssd': No such file or directory
find: `/run/lock/apache2': No such file or directory
cp: cannot create directory `/container-persistence/logs': Permission denied
cp: cannot create directory `/container-persistence/config': Permission denied
cp: cannot create directory `/container-persistence/dsnet-md': Permission denied
cp: cannot create directory `/container-persistence/dsnet-core': Permission denied
cp: cannot create directory `/container-persistence/dsnet-manager': Permission denied
cp: cannot create directory `/container-persistence/mysql': Permission denied
mkdir: cannot create directory `/container-persistence/tmp': Permission denied
chown: cannot dereference `/tmp/mysql': No such file or directory
mkdir: cannot create directory `/container-persistence/tmp': Permission denied
done.
Traceback (most recent call last):
 File “/etc/rcS.container/300-env-mapping”, line 135, in <module>
  sys.exit(main())
 File “/etc/rcS.container/300-env-mapping”, line 127, in main
  message_md.write('/security/bootstrap', md_parameters)
 File “/usr/lib/python2.7/dist-packages/dsnet/platform/message_md.py”, line 28, in write
  with open(tmp_name, 'w') as file_:
IOError: [Errno 2] No such file or directory: '/var/lib/dsnet-md/spool/tmp/144292875158610106_message-md_1_583571'
Error: /etc/rcS.container/300-env-mapping failed with return code 1