美文网首页
docker学习笔记

docker学习笔记

作者: zhu733756 | 来源:发表于2020-06-08 12:40 被阅读0次

    1 几个概念:

        镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。

        容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。

        而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。

        简单总结:

        dockerfile: 构建镜像;

        docker run: 启动容器;

        docker-compose: 启动服务;

    2 容器卷挂载

         docker run -it -v /home/xx:容器路径

         docker-compose 中 VOLUME /var/log /var/db(服务器上路径,容器上路径进行了关联挂载)

    3 进入docker容器

        sudo docker exec -it 775c7c9ee1e1 /bin/bash  (推荐)

        docker attach 44fc0f0582d9 

        缺点:当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。

    4 docker访问本地数据库

        在docker容器里localhost并不是指宿主机的localhost,而是docker0,用ifconfig可以查看;

    5 服务器断网后,重启docker容器,使用docker-compose启动服务,之前设置保留

    6 docker容器相互访问、访问docker应用

      虚拟ip访问,ifconfig查看,通过网络协议访问;

      使用--link,参数中第一个centos-1是容器名,第二个centos-1是定义的容器别名(使用别名访问容器),为了方便使用,一般别名默认容器名;

      docker network create testnet,创建bridge网络,若访问容器中服务,可以使用这用方式访问 <网络别名>:<服务端口号>

    7 docker-compose和dockerfile区别

        docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。而dockerfile的作用是从无到有的构建镜像。

    8 参考文献:

      https://www.jianshu.com/p/28e3f108cecd

      https://segmentfault.com/q/1010000009883848

    相关文章

      网友评论

          本文标题:docker学习笔记

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