一、教程及介绍:
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
注意:本文归作者所有,未经作者允许,不得转载