Docker学习之启动容器并进行目录挂载
- 简介
- 适用场景
- 语法说明
- 单目录挂载
- 多目录挂载
- 只读目录挂载
- 使用示例
- 其他
- 挂载的本地目录在容器中没有执行权限
- 参考资料
简介
- 内容介绍
在创建容器的时候,将宿主机的目录与容器内的目录进行映射,从而实现宿主机和容器目录的双向数据自动同步。
适用场景
- 场景介绍
通过容器目录挂载,能够轻松实现代码上传,配置修改,日志同步等需求
语法说明
单目录挂载
docker run -it -v /宿主机目录:/容器目录 镜像名:版本号
多目录挂载
docker run -it -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名:版本号
只读目录挂载
docker run -it -v /宿主机目录:/容器目录:ro 镜像名:版本号
使用示例
- 运行自定义镜像容器
docker run -it -p 8070:8080 -v /root/software:/software --privileged=true docker.io/centos /bin/bash
-it 创建一个交互式的容器
-p 映射端口8070 本机的端口 映射的容器的端口
-v 挂载目录/root/software 本地目录 /software容器目录,在创建前容器是没有software目录的,docker 容器会自己创建
–privileged=true 关闭安全权限,否则你容器操作文件夹没有权限
–容器名称
–CMD
- 查看容器运行情况
docker ps -a
- 进入容器
# 可以是容器名称,也可以使用container id
docker exec -it 容器名称 /bin/bash
# 退出容器并关闭容器
ctrl+c
# 退出不关闭容器
ctrl+p+q
其他
挂载的本地目录在容器中没有执行权限
- privileged参数
如果你同步的是多级目录,可能会出现权限不足的提示;
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加 --privileged=true 来解决挂载的目录没有权限的问题 - 实现方式
docker容器启动
# docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init
k8s集群启动