DOCKER学习心得
原文:DOCKER学习心得
前言:
Docker的主要学习心得来源于《docker技术入门与实战》 --2019.1.1->2019.1.5
la
着重从基础部分--实例分析--进阶技能--开源项目几个部分来介绍docker的使用,可以根据实际用途选读12,123,1234,13,134,14等等,每一部分都是基于docker基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,
基础部分:
仍然是典型的事物三要素:
为什么要用docker?
- 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
- 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。
*虚拟化对比:
|
|
容器 |
虚拟机 |
|
|
启动速度 |
秒级 |
分钟级 |
|
|
性能 |
接近原生 |
较弱 |
|
|
内存代价 |
很小 |
较多 |
|
|
硬盘使用 |
MB |
GB |
|
|
运行密度 |
单机几千个 |
单机几十个 |
|
|
隔离性 |
安全隔离 |
完全隔离 |
|
|
迁移性 |
优秀 |
一般 |
|
|
|
|
|
|
什么是docker?
Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。
怎么用docker?
Docker三大关键词:镜像,容器,仓库。
1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。
2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。
3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。
Docker使用:
- 搜索,获取镜像;
- 操作Docker容器;
2.1 创建容器
2.2 进入容器
- 访问Docker仓库:
3.1 访问公共镜像市场
Docker search centos
3.2 时速云镜像市场。
3.3 搭建本地仓库
- Docker数据管理
4.1 什么是数据卷
容器内的数据直接映射到被顶主机环境
4.2 什么是数据卷容器
使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)
4.3 数据卷容器用来迁移数据(备份,回复)
- 容器互相访问
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容器。
- 使用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基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,
基础部分:
仍然是典型的事物三要素:
为什么要用docker?
- 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
- 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。
*虚拟化对比:
|
|
容器 |
虚拟机 |
|
|
启动速度 |
秒级 |
分钟级 |
|
|
性能 |
接近原生 |
较弱 |
|
|
内存代价 |
很小 |
较多 |
|
|
硬盘使用 |
MB |
GB |
|
|
运行密度 |
单机几千个 |
单机几十个 |
|
|
隔离性 |
安全隔离 |
完全隔离 |
|
|
迁移性 |
优秀 |
一般 |
|
|
|
|
|
|
什么是docker?
Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。
怎么用docker?
Docker三大关键词:镜像,容器,仓库。
1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。
2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。
3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。
Docker使用:
- 搜索,获取镜像;
- 操作Docker容器;
2.1 创建容器
2.2 进入容器
- 访问Docker仓库:
3.1 访问公共镜像市场
Docker search centos
3.2 时速云镜像市场。
3.3 搭建本地仓库
- Docker数据管理
4.1 什么是数据卷
容器内的数据直接映射到被顶主机环境
4.2 什么是数据卷容器
使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)
4.3 数据卷容器用来迁移数据(备份,回复)
- 容器互相访问
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容器。
- 使用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基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,
基础部分:
仍然是典型的事物三要素:
为什么要用docker?
- 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
- 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。
*虚拟化对比:
|
|
容器 |
虚拟机 |
|
|
启动速度 |
秒级 |
分钟级 |
|
|
性能 |
接近原生 |
较弱 |
|
|
内存代价 |
很小 |
较多 |
|
|
硬盘使用 |
MB |
GB |
|
|
运行密度 |
单机几千个 |
单机几十个 |
|
|
隔离性 |
安全隔离 |
完全隔离 |
|
|
迁移性 |
优秀 |
一般 |
|
|
|
|
|
|
什么是docker?
Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。
怎么用docker?
Docker三大关键词:镜像,容器,仓库。
1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。
2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。
3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。
Docker使用:
- 搜索,获取镜像;
- 操作Docker容器;
2.1 创建容器
2.2 进入容器
- 访问Docker仓库:
3.1 访问公共镜像市场
Docker search centos
3.2 时速云镜像市场。
3.3 搭建本地仓库
- Docker数据管理
4.1 什么是数据卷
容器内的数据直接映射到被顶主机环境
4.2 什么是数据卷容器
使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)
4.3 数据卷容器用来迁移数据(备份,回复)
- 容器互相访问
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容器。
- 使用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基本假设思路来进行的拓展研读,我这里仅对于每张内容进行一些心得分析,行文有点飘逸,有不明白的可以来信和我沟通,
基础部分:
仍然是典型的事物三要素:
为什么要用docker?
- 资源紧张:你可以在一台物理机上部署100个虚拟机么?但你可以一台物理机上部署很100个docker!
- 跨平台:你想在多平台上进行多个虚拟化么?用虚拟机,每个平台都需要安装部署,配置,使用docker:简单的改变下基础镜像就行了。随改随用。
*虚拟化对比:
|
|
容器 |
虚拟机 |
|
|
启动速度 |
秒级 |
分钟级 |
|
|
性能 |
接近原生 |
较弱 |
|
|
内存代价 |
很小 |
较多 |
|
|
硬盘使用 |
MB |
GB |
|
|
运行密度 |
单机几千个 |
单机几十个 |
|
|
隔离性 |
安全隔离 |
完全隔离 |
|
|
迁移性 |
优秀 |
一般 |
|
|
|
|
|
|
什么是docker?
Docker是用一种虚拟化的技术,隶属于容器化,通过对应用的封装,分发,部署,运行生命周期进行管理。达到应用软件“一次封装,到处使用”。
怎么用docker?
Docker三大关键词:镜像,容器,仓库。
1,镜像相当于一个安装包,是一个只读的模板,可以是一个基本的操作系统,也可以包含类似于Apache之类的软件。
2,容器是一个轻量级的沙箱,Docker里面容器进行隔离应用,容器是镜像创建的实例。
3,仓库:存放镜像的地方。(仓库注册服务器往往有许多仓库,每个仓库放着某一类镜像),最大仓库为Docker Hub,也可以自建仓库。在另一台机器上使用是,只用从仓库上面pull下来就行了。
Docker使用:
- 搜索,获取镜像;
- 操作Docker容器;
2.1 创建容器
2.2 进入容器
- 访问Docker仓库:
3.1 访问公共镜像市场
Docker search centos
3.2 时速云镜像市场。
3.3 搭建本地仓库
- Docker数据管理
4.1 什么是数据卷
容器内的数据直接映射到被顶主机环境
4.2 什么是数据卷容器
使用特定容器维护数据卷(如果用户要在多个容器直接共享一些持续更新的数据,可以使用数据卷容器,数据卷容器也是容器,目的树专门提供数据卷给其他容器挂载)
4.3 数据卷容器用来迁移数据(备份,回复)
- 容器互相访问
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容器。
- 使用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学习心得的更多相关文章
- Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得
原文:Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得 特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记 ...
- Docker学习总结之Run命令介绍
Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...
- 一点点linux系统的学习心得
我相信你正在阅读本文的时候,可能是因为你渴望学习Linux技术.我想分享一下过去两年中我自己的一些学习经历,希望你能更顺利地成为Linuxer. 两年前在Linux系统的运行和维护方面找到了一份工作( ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
随机推荐
- c# 装箱与拆箱的概念
1装箱 就是将值类型的数据赋值给引用类型的实例中 比如 int类型的123赋值给Object o int i=123; Object o=(Object) i; 2拆箱 就是从引用类型的数据中提取数据 ...
- POj 2159 Dividing
Dividing Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 71453 Accepted: 18631 Descri ...
- unalias---取消命令别名
unalias命令用来取消命令别名,是为shell内建命令. 选项 -a:取消所有命令别名. 实例 使用unalias命令将已经设置的命令别名"cc"取消,输入如下命令: unal ...
- 用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...
- 【习题 8-6 UVA - 1611】 Crane
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 想把数字i从位置j移动到位置i 可以这样. 假设mov(x,y)表示将(x..x+len/2-1)和(x+len/2..y)交换. ...
- [Anuglar & NgRx] StoreRouterConnectingModule
Always treat Router as the source of truth When we use Ngrx, we can see that we will use a "Sto ...
- 辛星跟您玩转vim第三节之程序猿特须要的移动方式
前面第二节我首先值得一提的是,我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载.假设左边的下载地址挂掉了.也能够自行在浏览器以下输入例如以下地址进行下载:h ...
- 15.Node.js REPL(交互式解释器)
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电 ...
- 对ng-repeat的表格内容添加不同样式:ng-style
对ng-repeat的表格内容添加不同样式,html代码: <tr ng-repeat="x in tableData"> <td>{{x.networkN ...
- nginx安装部署+增加媒体播放模块
nginx安装很简单,但是有的时候是已经安装的nginx ,升级增加nginx 模块功能. 最近公司要nginx增加一个可以播放 MP4的模块,安装还算顺利,不说废话上命令. 1 安装依赖 yum i ...