lidonghe 发表于 2019-2-20 10:56:11

docker入门实战(理论+实践)系列

  docker可以存在自身的网络配置和数据卷管理方式,首先docker容器作为一个独立的运行单元,可以有独立的IP地址、端口等信息。同时,nginx是无状态的,当docker重启之后,容器会恢复到初始化镜像状态(即docker是无状态的),生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作,数据卷的存在实现了宿主机和docker容器之间的数据共享,本篇文章以nginx容器为例进行。
  nginx pull nginx
http://s1.运维网.com/images/20181109/1541735125144306.png

  1、docker网络配置
  docker run指定网络参数
  -P 宿主机和docker容器之间的端口映射采用随机端口映射
  -p 指定映射
http://s1.运维网.com/images/20181109/1541737021422732.png
  (1)随机端口映射
  docker run -d -P nginx-----采用随机端口映射启动nginx容器
  如下图,docker容器采用了宿主机的32768映射到docker容器的80端口

http://s1.运维网.com/images/20181109/1541737122758503.png
  此时通过宿主机IP:port,可以访问到nginx
http://s1.运维网.com/images/20181109/1541737272810335.png

  (2)指定端口映射
  docker run -d -p 3333:80 --name nginx-demo nginx------启动nginx容器,宿主机的3333映射到docker容器的80端口

http://s1.运维网.com/images/20181109/1541737351491855.png
  2、数据卷管理
  docker提供了宿主机和docker容器共享的文件的机制:数据卷和数据卷容器。
  容器中管理数据主要有两种方式:
  (1)、数据卷(Data Volumes):容器内数据直接映射到本地主机环境;如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。
  (2)、数据卷容器(Data Volume Containers):使用特定容器维护数据卷。如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。
  docker 容器挂载数据的三种方式:volume、bind mount、tmpfs,其中volume是本文重点将的

http://s1.运维网.com/images/20181109/1541739577518518.png
数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。
  数据卷可以提供很多有用的特性,如下所示:
  (1)、数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;
  (2)、对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
  (3)、对数据卷的更新不会影响镜像,解耦了应用和数据;
  (4)、卷会一直存在,直到没有容器使用,可以安全地卸载它。
http://s1.运维网.com/images/20181109/1541737458725529.png
  将宿主机的/data目录挂载到docker容器的/data目录下面
  docker run -d --name nginx-test2 -v /data/:/data nginx
http://s1.运维网.com/images/20181109/1541738098344457.png
  3、数据卷容器

  数据卷容器是数据持久化的一种方式,使用数据卷容器,需要创建一个数据卷容器
  docker run -d --name volume-demo -v /data/:/data nginx------创建一个volume容器,将宿主机的/data目录挂载到容器内部的/data目录
  我们启动一个nginx-volume-demo容器,采用--volumes-from 指定数据卷容器
  docker run -d --name nginx-volume-demo --volumes-from volume-demo nginx

http://s1.运维网.com/images/20181113/1542103281460559.png
  采用数据卷容器有一个特点,即使数据卷容器停止或者挂掉,使用数据卷容器的容器仍然可以使用挂载的目录:
http://s1.运维网.com/images/20181113/1542103456314889.png







页: [1]
查看完整版本: docker入门实战(理论+实践)系列