docker(2)
docker(2)
Edmend ZhangDocker(2)
以ubuntu容器为例,在宿主机和容器之间添加数据卷。添加数据卷的命令 是
docker run -it –privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
1 | [root@shjava101 ~]# docker run -it --privileged=true -v |
- 查看宿主机目录 查看宿主机目录 在宿主机对应的目录里面创建一个文件 回到容器目录查看 我们发现在容器中,这个文件也会存在。
- 要宿主机和容器之间的目录形成挂载关系,不管是容器内数据发生变化, 还是宿主机内部数据发生变化,都会被另一方即时同步
- 容器停止了,当再次启动容器之后,文件依然还是可以同步
如何查看数据卷挂载成功
docker inspect 容器id
1 | [root@shjava101 ~]# docker inspect 1c88215ff319 |
上面的挂载,默认在容器内部的目录都可以进行读写操作。如果我们只想在容 器内部进行读操作呢? 我们需要加上:ro标识 (read only)
1 | [root@shjava101 ~]# docker run -it --privileged=true -v |
如果宿主机写入内容,可以同步给容器内,容器可以读取到。 容器的数据卷还可以被继承和共享。
docker run -it –privileged=true –volumes-from 父类 –name u2 ubuntu
1 | [root@shjava101 hostData]# docker run -it --privileged=true -- |
Docker 安装常规软件
1 | [root@shjava101 ~]# docker search tomcat/ |
tomcat10 以上 webapps 目录存在问题 改为了webapps.list
1 | root@7dd763fc2bcd:/usr/local/tomcat# cd webapps.dist/ |
Mysql 实现容器挂载
1 | root@shjava101 /]# docker run -d -p 3307:3306 --privileged=true -v /opt/mysql/log:/var/log/mysql -v |
实现数据卷挂载,将mysql相关的运行数据同步到宿主机的指定目录。
Redis + Docker
- 创建目录
1 | [root@shjava101 /]# cd /opt |
- 将一个redis.conf文件模板拷贝进/opt/app/redis目录下
1 | [root@shjava101 opt]# cp redis.conf /opt/app/redis/ |
- /opt/app/redis目录下修改redis.conf文件
- 允许redis外部连接
- daemonize no
将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d 参数冲突,会导致容器一直启动失败
- 开启redis数据持久化 appendonly yes
- 使用redis6.0.8镜像创建容器(也叫运行镜像)
Comment
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果