原文:DOCKER学习心得

 

前言:

Docker的主要学习心得来源于《docker技术入门与实战》 --2019.1.1->2019.1.5

la

着重从基础部分--实例分析--进阶技能--开源项目几个部分来介绍docker的使用,可以根据实际用途选读12,123,1234,13,134,14等等,每一部分都是基于docker基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,

125724540@qq.com

 

 

基础部分:

仍然是典型的事物三要素:

为什么要用docker?

  1. 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
  2. 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。

*虚拟化对比:

 

 

容器

虚拟机

 

启动速度

秒级

分钟级

 

性能

接近原生

较弱

 

内存代价

很小

较多

 

硬盘使用

MB

GB

 

运行密度

单机几千个

单机几十个

 

隔离性

安全隔离

完全隔离

 

迁移性

优秀

一般

 

 

 

 

 

 

 

 

什么是docker?

 Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。

 

怎么用docker?

    Docker三大关键词:镜像,容器,仓库。

1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。

2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。

3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。

 

Docker使用:

  1. 搜索,获取镜像;
  2. 操作Docker容器;

2.1 创建容器

2.2 进入容器

 

  1. 访问Docker仓库:

3.1 访问公共镜像市场

Docker search centos

3.2 时速云镜像市场。

3.3  搭建本地仓库

 

  1. Docker数据管理

4.1 什么是数据卷

容器内的数据直接映射到被顶主机环境

4.2 什么是数据卷容器

使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)

4.3  数据卷容器用来迁移数据(备份,回复)

 

  1. 容器互相访问

5.1 容器内应用的服务端口映射到本机:

Docker run -d -P  5000:5000 training/webapp  python app.py

将本地5000端口映射到容器5000的端口

 

5.2 容器直接通过容器名互相访问;

5.2.1 使用docker指定容器名字

 docker run -d -P --name web training/webpapp python app.py

5.2.2

Docker run -d -p --name web --link db:db training/webapp python app.py

--link表示连接到db容器。

 

 

  1. 使用docker文件创建镜像

   6.1 文件基本结构

  一般而言:dockerfile分成4个部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令:

例如,.在debian:jessie基础镜像上安装nginx环境,从而创建一个新的nginx镜像:

 

#基础镜像信息

 

FROM debian:jessie 

#维护者信息

MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"

#镜像操作指令

ENV NGINX_VERSION 1.10.1-1~jessie #环境变量

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys #573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 && \

echo "deb http://nginx.org/package/debian/ jessie nginx" >> /etc/apt/source.list && apt-get update && \ #debian命令行,

apt-get install --no-install-recommends --no-install-suggests -y ca-certificates nginx=$(NGINX_VERSION) \

nginx-module-xslt nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-njs gettext-base && \

rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector

RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/err.log

 

EXPOSE 80 443

#容器启动指令

CMD ["nginx","-g","daemon off;"]

 

 

 

 

 

   6.2 dockerfile基础创建指令说明

From:指定基础镜像,如果本地不在,则到docker hub中找;

MANTAINER:维护者信息

RUN:运行指定指令

CMD:指定启动容器的默认执行指令

LABEL:用来指定生成镜像的元数据标签信息。

EXPOSE:声明镜像内指定服务的监听的端口。

ENV:指定环境变量。

ADD/COPY:复制。

ENTRYPOINT:指定镜像的默认入口

VOLUME:创建一个数据卷挂载点

USER:指定运行容器时的用户名和UID,后续的RUN.

WORKDIR:为后续的RUN,CMD,ENTRYPOINT配置工作目录。

ARG:指定一些镜像里面使用的参数

HEALTHCHECK:健康检查

ONBUILD:配置当前镜像为其他镜像的基础镜像时,所执行的创建操作命令;

 

 

   6.3 创建镜像

编写完dockfile后,使用docker build来创建镜像。

Docker build -t build_repo/first_image /temp/docker_builder

 

实例分析:

       我们用实践来检验真像的唯一标准。用Docker来运行典型案例。

7 docker构建操作系统

8 docker追加ssh服务()

        9 docker安装web服务

        10 docker安装数据库。

11 docker安装大数据平台

Docker安装hadoop

Docker run指令运行。

Docker run -it sequenceiq/hadoop-docker:2.7.0 /etc/bootstrap.sh -bash bash-4.`#

12 docker快速构建C++/JAVA开发环境。

13 容器和云服务

14 容器实战思考

14.1 为什么会成功

每个服务(或应用)维护一个dockerfile,也可以追加docker compose进行编排,开发和运维团队共同维护这个文件,降低沟通和部署成本;

14.2  研发人员如何看待docker

14.2.1快速上手新技术

14.2.2 容器化代码仓库;

同样一件事情,新手接收后往往首先面对是思路和工具的抉择,然后解决各种“坑”,自身工程师接受后,快速规划所需要的资源,并在最短时间内利用积累的模块搭建起系统,从而快速完成任务;

14.2.3 研发工程中的各种发布版本,可以直接使用docker容器方式保存,以后遇到类似需求,可以直接运行,复用代码;

     14.3 容器化开发模式;

 14.4 容器与生产环境

 容器并不适合所有服务和应用,符合12要素的类型应用才适合,这些服务是无状态的。

 12要素http://www.12factor.net:

https://blog.csdn.net/tiger0709/article/details/77505859

     如果docker出现不可控的风险,是否考虑了备选方案;

   目前,docker对容器安全管理的限制不够完善;

 

 

 

 

 

 

进阶技能:

15 Docker核心技术

16 配置私有仓库

17安全范湖和配置

18 高级网络功能

19,Libnetwork插件化网咯功能

 

开源项目:

20,ETCD

22,DockerCompose

21.  Docker Machine

22, DockerSwarm

23   Mesoso

24  kubernetes(高级版dockerSwarm)

25 其他相关项目

25.1 PaaS(平台既服务)

25.2 CI(持续集成

Drone

 

25.3容器管理

25.4编程开发

25.5网络支持

25.6 日志处理

25.7 反向代理(就是服务代理)

服务代理服务器也就是负载均衡器

 

HINT:

总结:

 

 

 

 

 

 

 

 

 

前言:

Docker的主要学习心得来源于《docker技术入门与实战》 --2019.1.1->2019.1.5

la

着重从基础部分--实例分析--进阶技能--开源项目几个部分来介绍docker的使用,可以根据实际用途选读12,123,1234,13,134,14等等,每一部分都是基于docker基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,

125724540@qq.com

 

 

基础部分:

仍然是典型的事物三要素:

为什么要用docker?

  1. 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
  2. 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。

*虚拟化对比:

 

 

容器

虚拟机

 

启动速度

秒级

分钟级

 

性能

接近原生

较弱

 

内存代价

很小

较多

 

硬盘使用

MB

GB

 

运行密度

单机几千个

单机几十个

 

隔离性

安全隔离

完全隔离

 

迁移性

优秀

一般

 

 

 

 

 

 

 

 

什么是docker?

 Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。

 

怎么用docker?

    Docker三大关键词:镜像,容器,仓库。

1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。

2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。

3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。

 

Docker使用:

  1. 搜索,获取镜像;
  2. 操作Docker容器;

2.1 创建容器

2.2 进入容器

 

  1. 访问Docker仓库:

3.1 访问公共镜像市场

Docker search centos

3.2 时速云镜像市场。

3.3  搭建本地仓库

 

  1. Docker数据管理

4.1 什么是数据卷

容器内的数据直接映射到被顶主机环境

4.2 什么是数据卷容器

使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)

4.3  数据卷容器用来迁移数据(备份,回复)

 

  1. 容器互相访问

5.1 容器内应用的服务端口映射到本机:

Docker run -d -P  5000:5000 training/webapp  python app.py

将本地5000端口映射到容器5000的端口

 

5.2 容器直接通过容器名互相访问;

5.2.1 使用docker指定容器名字

 docker run -d -P --name web training/webpapp python app.py

5.2.2

Docker run -d -p --name web --link db:db training/webapp python app.py

--link表示连接到db容器。

 

 

  1. 使用docker文件创建镜像

   6.1 文件基本结构

  一般而言:dockerfile分成4个部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令:

例如,.在debian:jessie基础镜像上安装nginx环境,从而创建一个新的nginx镜像:

 

#基础镜像信息

 

FROM debian:jessie 

#维护者信息

MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"

#镜像操作指令

ENV NGINX_VERSION 1.10.1-1~jessie #环境变量

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys #573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 && \

echo "deb http://nginx.org/package/debian/ jessie nginx" >> /etc/apt/source.list && apt-get update && \ #debian命令行,

apt-get install --no-install-recommends --no-install-suggests -y ca-certificates nginx=$(NGINX_VERSION) \

nginx-module-xslt nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-njs gettext-base && \

rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector

RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/err.log

 

EXPOSE 80 443

#容器启动指令

CMD ["nginx","-g","daemon off;"]

 

 

 

 

 

   6.2 dockerfile基础创建指令说明

From:指定基础镜像,如果本地不在,则到docker hub中找;

MANTAINER:维护者信息

RUN:运行指定指令

CMD:指定启动容器的默认执行指令

LABEL:用来指定生成镜像的元数据标签信息。

EXPOSE:声明镜像内指定服务的监听的端口。

ENV:指定环境变量。

ADD/COPY:复制。

ENTRYPOINT:指定镜像的默认入口

VOLUME:创建一个数据卷挂载点

USER:指定运行容器时的用户名和UID,后续的RUN.

WORKDIR:为后续的RUN,CMD,ENTRYPOINT配置工作目录。

ARG:指定一些镜像里面使用的参数

HEALTHCHECK:健康检查

ONBUILD:配置当前镜像为其他镜像的基础镜像时,所执行的创建操作命令;

 

 

   6.3 创建镜像

编写完dockfile后,使用docker build来创建镜像。

Docker build -t build_repo/first_image /temp/docker_builder

 

实例分析:

       我们用实践来检验真像的唯一标准。用Docker来运行典型案例。

7 docker构建操作系统

8 docker追加ssh服务()

        9 docker安装web服务

        10 docker安装数据库。

11 docker安装大数据平台

Docker安装hadoop

Docker run指令运行。

Docker run -it sequenceiq/hadoop-docker:2.7.0 /etc/bootstrap.sh -bash bash-4.`#

12 docker快速构建C++/JAVA开发环境。

13 容器和云服务

14 容器实战思考

14.1 为什么会成功

每个服务(或应用)维护一个dockerfile,也可以追加docker compose进行编排,开发和运维团队共同维护这个文件,降低沟通和部署成本;

14.2  研发人员如何看待docker

14.2.1快速上手新技术

14.2.2 容器化代码仓库;

同样一件事情,新手接收后往往首先面对是思路和工具的抉择,然后解决各种“坑”,自身工程师接受后,快速规划所需要的资源,并在最短时间内利用积累的模块搭建起系统,从而快速完成任务;

14.2.3 研发工程中的各种发布版本,可以直接使用docker容器方式保存,以后遇到类似需求,可以直接运行,复用代码;

     14.3 容器化开发模式;

 14.4 容器与生产环境

 容器并不适合所有服务和应用,符合12要素的类型应用才适合,这些服务是无状态的。

 12要素http://www.12factor.net:

https://blog.csdn.net/tiger0709/article/details/77505859

     如果docker出现不可控的风险,是否考虑了备选方案;

   目前,docker对容器安全管理的限制不够完善;

 

 

 

 

 

 

进阶技能:

15 Docker核心技术

16 配置私有仓库

17安全范湖和配置

18 高级网络功能

19,Libnetwork插件化网咯功能

 

开源项目:

20,ETCD

22,DockerCompose

21.  Docker Machine

22, DockerSwarm

23   Mesoso

24  kubernetes(高级版dockerSwarm)

25 其他相关项目

25.1 PaaS(平台既服务)

25.2 CI(持续集成

Drone

 

25.3容器管理

25.4编程开发

25.5网络支持

25.6 日志处理

25.7 反向代理(就是服务代理)

服务代理服务器也就是负载均衡器

 

HINT:

总结:

 

 

 

 

 

 

 

 

 

前言:

Docker的主要学习心得来源于《docker技术入门与实战》 --2019.1.1->2019.1.5

la

着重从基础部分--实例分析--进阶技能--开源项目几个部分来介绍docker的使用,可以根据实际用途选读12,123,1234,13,134,14等等,每一部分都是基于docker基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,

125724540@qq.com

 

 

基础部分:

仍然是典型的事物三要素:

为什么要用docker?

  1. 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
  2. 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。

*虚拟化对比:

 

 

容器

虚拟机

 

启动速度

秒级

分钟级

 

性能

接近原生

较弱

 

内存代价

很小

较多

 

硬盘使用

MB

GB

 

运行密度

单机几千个

单机几十个

 

隔离性

安全隔离

完全隔离

 

迁移性

优秀

一般

 

 

 

 

 

 

 

 

什么是docker?

 Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。

 

怎么用docker?

    Docker三大关键词:镜像,容器,仓库。

1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。

2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。

3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。

 

Docker使用:

  1. 搜索,获取镜像;
  2. 操作Docker容器;

2.1 创建容器

2.2 进入容器

 

  1. 访问Docker仓库:

3.1 访问公共镜像市场

Docker search centos

3.2 时速云镜像市场。

3.3  搭建本地仓库

 

  1. Docker数据管理

4.1 什么是数据卷

容器内的数据直接映射到被顶主机环境

4.2 什么是数据卷容器

使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)

4.3  数据卷容器用来迁移数据(备份,回复)

 

  1. 容器互相访问

5.1 容器内应用的服务端口映射到本机:

Docker run -d -P  5000:5000 training/webapp  python app.py

将本地5000端口映射到容器5000的端口

 

5.2 容器直接通过容器名互相访问;

5.2.1 使用docker指定容器名字

 docker run -d -P --name web training/webpapp python app.py

5.2.2

Docker run -d -p --name web --link db:db training/webapp python app.py

--link表示连接到db容器。

 

 

  1. 使用docker文件创建镜像

   6.1 文件基本结构

  一般而言:dockerfile分成4个部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令:

例如,.在debian:jessie基础镜像上安装nginx环境,从而创建一个新的nginx镜像:

 

#基础镜像信息

 

FROM debian:jessie 

#维护者信息

MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"

#镜像操作指令

ENV NGINX_VERSION 1.10.1-1~jessie #环境变量

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys #573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 && \

echo "deb http://nginx.org/package/debian/ jessie nginx" >> /etc/apt/source.list && apt-get update && \ #debian命令行,

apt-get install --no-install-recommends --no-install-suggests -y ca-certificates nginx=$(NGINX_VERSION) \

nginx-module-xslt nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-njs gettext-base && \

rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector

RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/err.log

 

EXPOSE 80 443

#容器启动指令

CMD ["nginx","-g","daemon off;"]

 

 

 

 

 

   6.2 dockerfile基础创建指令说明

From:指定基础镜像,如果本地不在,则到docker hub中找;

MANTAINER:维护者信息

RUN:运行指定指令

CMD:指定启动容器的默认执行指令

LABEL:用来指定生成镜像的元数据标签信息。

EXPOSE:声明镜像内指定服务的监听的端口。

ENV:指定环境变量。

ADD/COPY:复制。

ENTRYPOINT:指定镜像的默认入口

VOLUME:创建一个数据卷挂载点

USER:指定运行容器时的用户名和UID,后续的RUN.

WORKDIR:为后续的RUN,CMD,ENTRYPOINT配置工作目录。

ARG:指定一些镜像里面使用的参数

HEALTHCHECK:健康检查

ONBUILD:配置当前镜像为其他镜像的基础镜像时,所执行的创建操作命令;

 

 

   6.3 创建镜像

编写完dockfile后,使用docker build来创建镜像。

Docker build -t build_repo/first_image /temp/docker_builder

 

实例分析:

       我们用实践来检验真像的唯一标准。用Docker来运行典型案例。

7 docker构建操作系统

8 docker追加ssh服务()

        9 docker安装web服务

        10 docker安装数据库。

11 docker安装大数据平台

Docker安装hadoop

Docker run指令运行。

Docker run -it sequenceiq/hadoop-docker:2.7.0 /etc/bootstrap.sh -bash bash-4.`#

12 docker快速构建C++/JAVA开发环境。

13 容器和云服务

14 容器实战思考

14.1 为什么会成功

每个服务(或应用)维护一个dockerfile,也可以追加docker compose进行编排,开发和运维团队共同维护这个文件,降低沟通和部署成本;

14.2  研发人员如何看待docker

14.2.1快速上手新技术

14.2.2 容器化代码仓库;

同样一件事情,新手接收后往往首先面对是思路和工具的抉择,然后解决各种“坑”,自身工程师接受后,快速规划所需要的资源,并在最短时间内利用积累的模块搭建起系统,从而快速完成任务;

14.2.3 研发工程中的各种发布版本,可以直接使用docker容器方式保存,以后遇到类似需求,可以直接运行,复用代码;

     14.3 容器化开发模式;

 14.4 容器与生产环境

 容器并不适合所有服务和应用,符合12要素的类型应用才适合,这些服务是无状态的。

 12要素http://www.12factor.net:

https://blog.csdn.net/tiger0709/article/details/77505859

     如果docker出现不可控的风险,是否考虑了备选方案;

   目前,docker对容器安全管理的限制不够完善;

 

 

 

 

 

 

进阶技能:

15 Docker核心技术

16 配置私有仓库

17安全范湖和配置

18 高级网络功能

19,Libnetwork插件化网咯功能

 

开源项目:

20,ETCD

22,DockerCompose

21.  Docker Machine

22, DockerSwarm

23   Mesoso

24  kubernetes(高级版dockerSwarm)

25 其他相关项目

25.1 PaaS(平台既服务)

25.2 CI(持续集成

Drone

 

25.3容器管理

25.4编程开发

25.5网络支持

25.6 日志处理

25.7 反向代理(就是服务代理)

服务代理服务器也就是负载均衡器

 

HINT:

总结:

 

 

 

 

 

 

 

 

 

前言:

Docker的主要学习心得来源于《docker技术入门与实战》 --2019.1.1->2019.1.5

la

着重从基础部分--实例分析--进阶技能--开源项目几个部分来介绍docker的使用,可以根据实际用途选读12,123,1234,13,134,14等等,每一部分都是基于docker基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,

125724540@qq.com

 

 

基础部分:

仍然是典型的事物三要素:

为什么要用docker?

  1. 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
  2. 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。

*虚拟化对比:

 

 

容器

虚拟机

 

启动速度

秒级

分钟级

 

性能

接近原生

较弱

 

内存代价

很小

较多

 

硬盘使用

MB

GB

 

运行密度

单机几千个

单机几十个

 

隔离性

安全隔离

完全隔离

 

迁移性

优秀

一般

 

 

 

 

 

 

 

 

什么是docker?

 Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。

 

怎么用docker?

    Docker三大关键词:镜像,容器,仓库。

1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。

2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。

3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。

 

Docker使用:

  1. 搜索,获取镜像;
  2. 操作Docker容器;

2.1 创建容器

2.2 进入容器

 

  1. 访问Docker仓库:

3.1 访问公共镜像市场

Docker search centos

3.2 时速云镜像市场。

3.3  搭建本地仓库

 

  1. Docker数据管理

4.1 什么是数据卷

容器内的数据直接映射到被顶主机环境

4.2 什么是数据卷容器

使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)

4.3  数据卷容器用来迁移数据(备份,回复)

 

  1. 容器互相访问

5.1 容器内应用的服务端口映射到本机:

Docker run -d -P  5000:5000 training/webapp  python app.py

将本地5000端口映射到容器5000的端口

 

5.2 容器直接通过容器名互相访问;

5.2.1 使用docker指定容器名字

 docker run -d -P --name web training/webpapp python app.py

5.2.2

Docker run -d -p --name web --link db:db training/webapp python app.py

--link表示连接到db容器。

 

 

  1. 使用docker文件创建镜像

   6.1 文件基本结构

  一般而言:dockerfile分成4个部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令:

例如,.在debian:jessie基础镜像上安装nginx环境,从而创建一个新的nginx镜像:

 

#基础镜像信息

 

FROM debian:jessie 

#维护者信息

MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"

#镜像操作指令

ENV NGINX_VERSION 1.10.1-1~jessie #环境变量

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys #573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 && \

echo "deb http://nginx.org/package/debian/ jessie nginx" >> /etc/apt/source.list && apt-get update && \ #debian命令行,

apt-get install --no-install-recommends --no-install-suggests -y ca-certificates nginx=$(NGINX_VERSION) \

nginx-module-xslt nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-njs gettext-base && \

rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector

RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/err.log

 

EXPOSE 80 443

#容器启动指令

CMD ["nginx","-g","daemon off;"]

 

 

 

 

 

   6.2 dockerfile基础创建指令说明

From:指定基础镜像,如果本地不在,则到docker hub中找;

MANTAINER:维护者信息

RUN:运行指定指令

CMD:指定启动容器的默认执行指令

LABEL:用来指定生成镜像的元数据标签信息。

EXPOSE:声明镜像内指定服务的监听的端口。

ENV:指定环境变量。

ADD/COPY:复制。

ENTRYPOINT:指定镜像的默认入口

VOLUME:创建一个数据卷挂载点

USER:指定运行容器时的用户名和UID,后续的RUN.

WORKDIR:为后续的RUN,CMD,ENTRYPOINT配置工作目录。

ARG:指定一些镜像里面使用的参数

HEALTHCHECK:健康检查

ONBUILD:配置当前镜像为其他镜像的基础镜像时,所执行的创建操作命令;

 

 

   6.3 创建镜像

编写完dockfile后,使用docker build来创建镜像。

Docker build -t build_repo/first_image /temp/docker_builder

 

实例分析:

       我们用实践来检验真像的唯一标准。用Docker来运行典型案例。

7 docker构建操作系统

8 docker追加ssh服务()

        9 docker安装web服务

        10 docker安装数据库。

11 docker安装大数据平台

Docker安装hadoop

Docker run指令运行。

Docker run -it sequenceiq/hadoop-docker:2.7.0 /etc/bootstrap.sh -bash bash-4.`#

12 docker快速构建C++/JAVA开发环境。

13 容器和云服务

14 容器实战思考

14.1 为什么会成功

每个服务(或应用)维护一个dockerfile,也可以追加docker compose进行编排,开发和运维团队共同维护这个文件,降低沟通和部署成本;

14.2  研发人员如何看待docker

14.2.1快速上手新技术

14.2.2 容器化代码仓库;

同样一件事情,新手接收后往往首先面对是思路和工具的抉择,然后解决各种“坑”,自身工程师接受后,快速规划所需要的资源,并在最短时间内利用积累的模块搭建起系统,从而快速完成任务;

14.2.3 研发工程中的各种发布版本,可以直接使用docker容器方式保存,以后遇到类似需求,可以直接运行,复用代码;

     14.3 容器化开发模式;

 14.4 容器与生产环境

 容器并不适合所有服务和应用,符合12要素的类型应用才适合,这些服务是无状态的。

 12要素http://www.12factor.net:

https://blog.csdn.net/tiger0709/article/details/77505859

     如果docker出现不可控的风险,是否考虑了备选方案;

   目前,docker对容器安全管理的限制不够完善;

 

 

 

 

 

 

进阶技能:

15 Docker核心技术

16 配置私有仓库

17安全范湖和配置

18 高级网络功能

19,Libnetwork插件化网咯功能

 

开源项目:

20,ETCD

22,DockerCompose

21.  Docker Machine

22, DockerSwarm

23   Mesoso

24  kubernetes(高级版dockerSwarm)

25 其他相关项目

25.1 PaaS(平台既服务)

25.2 CI(持续集成

Drone

 

25.3容器管理

25.4编程开发

25.5网络支持

25.6 日志处理

25.7 反向代理(就是服务代理)

服务代理服务器也就是负载均衡器

 

HINT:

总结:

 

 

 

 

 

 

 

 

 

DOCKER学习心得的更多相关文章

  1. Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得

    原文:Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得 特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记 ...

  2. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  3. 一点点linux系统的学习心得

    我相信你正在阅读本文的时候,可能是因为你渴望学习Linux技术.我想分享一下过去两年中我自己的一些学习经历,希望你能更顺利地成为Linuxer. 两年前在Linux系统的运行和维护方面找到了一份工作( ...

  4. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  5. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  9. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

随机推荐

  1. CString与 char *之间的转换

    http://www.cnblogs.com/watsonlong/archive/2011/04/15/2017086.html

  2. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  3. 阅读笔记—MVC

    MVC设计模式 Model 1 体系结构 在Model 1 体系结构中,每一个请求的目标都是JSP页面.JSP页面负责完成请求所需要的而所有任务,其中包括验证客户.使用JavaBeans访问数据库及管 ...

  4. 洛谷——P1314 聪明的质监员

    https://www.luogu.org/problem/show?pid=1314 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每 ...

  5. HDU 1533 Going Home(KM完美匹配)

    HDU 1533 Going Home 题目链接 题意:就是一个H要相应一个m,使得总曼哈顿距离最小 思路:KM完美匹配,因为是要最小.所以边权建负数来处理就可以 代码: #include <c ...

  6. H5+混合移动app

    H5+混合移动app 前言 经过2个多月的艰苦奋斗,app的第一个版本已经快完工了,期间遇到了太多的坑,作为一个喜欢分享的人,我当然不会吝啬分享这爬坑历程.不要问我有多坑,我会告诉你很多,很多.... ...

  7. Direct2D开发:向 MFC 项目添加 Direct2D 对象

    0X01 创建 MFC 应用程序: 在“文件”菜单上指向“新建”,然后单击“项目”. 在“新建项目”对话框左窗格的“已安装的模板”下,展开“Visual C++”,然后选择“MFC”. 在中间窗格中, ...

  8. Java中的线程模型及实现方式

    概念: 线程是一个程序内部的顺序控制流 线程和进程的比较: 每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大. 线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和 ...

  9. VPS的centOS6安装远程桌面

    VPS的centOS6安装远程桌面 64位系统的需要编译安装 ttp://www.landui.com/help/Show-991.html xrdp是在图形界面下使用的,首先要确定您的centos系 ...

  10. .net core 时间格式转换

    //string time = "2019-01-18 13:50:38"; string time = "2019-01-18 13:50:38 256"; ...