一)挂载宿主机目录作为数据卷

使用--mount标记可以指定挂载一个宿主机的目录到容器中去。

# docker run -it --mount type=bind,source=/opt/sharefolder,target=/opt/sharefolder imageID bash            //容器将共享宿主机的/opt/sharefolder目录以方便数据共享


二)启动的容器中运行systemctl命令,报错:Failed to get D-Bus connection: Operation not permitted

解决方案:启动容器的时候加上/usr/sbin/init参数

docker run -dit --privileged imageID /usr/sbin/init         //该方案有非常大的缺陷,就是运行命令启动容器时会将宿主机的所有tty杀掉,需宿主用户重新登录

第二种解决方案: 以下面命令启动容器

# docker run -it --cap-add=SYS_ADMIN -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup imageID /usr/sbin/init            //此种方案启动容器后终端默认显示登录界面,关掉该终端再另外打开一终端运行docker exec -it containerID bash命令进入容器即可获得相应权限

第三种解决方案: 构建自带systemd服务镜像

具体方法,请参考: https://hub.docker.com/_/centos/