美文网首页
Docker映射配置文件到宿主机

Docker映射配置文件到宿主机

作者: 刘小白DOER | 来源:发表于2021-03-22 22:19 被阅读0次

    最近在做mysql中间件的docker,搞了mycat、mysql route都拉不起来容器,最后试试proxysql可以,proxysql官方发布了镜像,感觉比较可靠。但是遇到一个小问题,笔者以前写过一篇文章-Docker MySQL数据持久化,用数据卷挂载的方式将mysql的数据(映射数据目录)持久化到宿主机。那么配置文件也是有必要来映射的,注意就可以避免在容器内安装编辑器。

    容器内有apt  和ap-get工具,安装前要apt update(或者apt-get  update,较慢)更新软件列表,然后apt install(或者apt-get  install),这样会增大容器空间,是没有必要的。笔者以前就是这样操作的,但是比较麻烦,而且容器如果是内部网络的话来安装的话就更加不方便了。笔者在映射数据目录时使用-v /home/mysql/data:/var/lib/mysql 。但是使用同样的分发,今天在映射proxysql的配置文件proxysql.cnf时遇到一个麻烦。

    先看看笔者挂载时遇到的问题: Are you trying to mount a directory onto a file。

    都是文件,那里来的目录呢。映射的意思是将可以将宿主机目录挂载到容器中,那么可能就是将/home/mycentos/proxysql.cnf设别为一个目录了,因为容器内/etc/proxysql.cnf的是真实存在的文件。在/home/mycentos/目录下ls -l查看一下。

    果然是目录!辗转反侧找到原因是docker启动容器进行挂载的时候,如果路径不存在,那么docker会自动创建一个目录。

    笔者的home/mycentos/目录下没有proxysql.cnf文件,挂载时docker就新建了一个proxysql.cnf的目录,但是这个对于挂载数据目录时是十分有用的,对于配置文件来说是不行的。于是笔者在目录home/mycentos/下新建了一个proxysql.cnf文件,再次运行docker run成功(前面运行失败的容器需要删除,不然名称冲突)。

docker run -itd --name proxysql -p 16032:6032 -p 16033:6033 -p 16070:6070 -v /home/mycentos/proxysql.cnf:/etc/proxysql.cnf proxysql/proxysql

    挂载后,容器内的/etc/proxysql.cnf配置文件是空的,不挂载的情况下是保持默认配置文件内容的,使用徐需要在编辑/home/mycentos/proxysql.cnf文件,然后进入容器后/etc/proxysql.cnf配置文件会跟随改变的。但是配置文件为空,那么就要从头开始配置,这对于配置文件很多的话是不方便的,保留原来的配置配置文件,再在里面修改会更加方便。这里笔者只能想到先运行一个容器,然后docker cp拷贝容器内的文件或者文件夹,在删除这个容器,另外开一个配置文件映射的容器。

    映射配置文件避免在容器内进行apt操作,使得容器膨胀过大。比如你要安装编辑器vi,首先要apt update更新,然后apt install ,相比于在容器外对其进行操作来说,更加麻烦没必要。

相关文章

  • Docker映射配置文件到宿主机

    最近在做mysql中间件的docker,搞了mycat、mysql route都拉不起来容器,最后试试prox...

  • docker创建mariadb实例

    安装docker 参考链接 docker创建mariadb数据库记录 -p 端口映射:宿主机3307映射docke...

  • Docker的网络

    Docker bridge docker bridge network是怎么映射到主机IP地址上网的呢?通过本机 ...

  • /etc目录信息

    /etc/hosts:主机名到IP地址的映射关系的文件; /etc/resolv.conf:DNS服务的配置文件 ...

  • 19年第41周:Docker——使用网络

    一、外部访问容器 常用端口映射 -p 宿主机端口:容器端口 多个端口映射 -p 宿主机端口1:容器端口1 -p 宿...

  • Docker-nginx篇

    docker中添加nginx容器。 下载nginx镜像仓库 查看官方教程 创建nginx容器 复制配置文件到宿主机...

  • docker里面运行jupyter notebook

    <>为概念标记,在实际输入中不用输入这个 main step: 1,配置docker-主机 端口映射 docker...

  • docker安装redis并允许远程访问

    下载镜像: docker pull redis 因为docker安装的redis默认是没有配置文件的,所以将宿主机...

  • docker安装redis

    下载redis镜像 执行以下命令安装创建映射目录和配置文件 映射目录和docker容器中的目录关联映射 检查是否安...

  • Docker部署Nginx

    目标: 通docker运行Nginx 通过Nginx容器访问主机的静态资源 通过主机配置文件配置Nginx容器 d...

网友评论

      本文标题:Docker映射配置文件到宿主机

      本文链接:https://www.haomeiwen.com/subject/rmmthltx.html