一、教程及介绍:

http://www.runoob.com/docker/docker-tutorial.html


二、常用命令


  • 查询镜像

docker search [name]


  • 拉取镜像

docker pull [name]


  • 查看本地镜像

docker images [name]


  • 运行容器

docker run

    -p 80:80:将容器的80端口映射到主机的80端口

    --name [name]:将容器命名为[name]

    -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

    -d: 后台运行容器,并返回容器ID;

    -e username="ritchie": 设置环境变量;

    示例:

docker run -p 3306:3306 --name mysql12 -v /usr/local/servers/mysql/logs:/var/log/mysql -v /usr/local/servers/mysql/conf/mysql:/etc/mysql -v /usr/local/servers/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6


  • 容器与主机之间的数据拷贝

docker cp  [containerID]:/www /tmp/


  • 主机与容器之间的数据拷贝

docker cp /www/runoob [containerID]:/www


  • 获取容器的日志

docker logs -f --tail 100 [containerID]

    -f : 跟踪日志输出

    --since :显示某个开始时间的所有日志

    -t : 显示时间戳

    --tail :仅列出最新N条容器日志


  • 容器启动情况

docker ps

    -a: 所有容器


  • 进入容器内部

docker exec -it [containerID] /bin/bash



三、问题:


    docker挂载的目录无法读写 Permission denied


   解决办法:

   原因是CentOS7中的安全模块selinux把权限禁掉了,


   有以下几种方式解决挂载的目录没有权限的问题:

   1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:

docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash


   2.临时关闭selinux:

setenforce 0


   3.添加selinux规则,改变要挂载的目录的安全性文本

    selinux参考:

    https://jingyan.baidu.com/article/6d704a13409b4128da51ca4e.html



注意:本文归作者所有,未经作者允许,不得转载