Docker 基础入门
Docker是一个开放的平台,将应用和基础设施分隔开来, 方便快速的交付软件。利用docker的提供的方法可以快速的测试和部署代码,显著的减少写代码和部署直接的延迟。
Docker 平台(The Docker platform):
container:单独的可以打包运行应用的环境。这些隔离、安全的环境可以让你在主机上同时运行许多container,因为不需要多余的虚拟机监控程序,因此container是很轻量级的,但是它可以直接运行在主机的内核上,因此相比虚拟机,你可以在你给的硬件上运行更多的容器。
Docker provides the ability to package and run an application in a loosely isolated environment called a container.
Docker 提供了工具和平台让你管理你容器的生命周期。
- 在容器中开发你的应用和支持组件
- 容器成为你开发和测试的独立单元
- 当你准备好在生产环境部署你的应用时,它可以作为一个容器或者编排的服务。无论在你的生产环境是本地数据中心还是云提供的,或者二者的混合,容器的工作方式都是一样的。
Docker 引擎(Docker Engine):
- Docker 引擎是客户端-服务端的应用(c/s client-server),有如下重要的组件:
- 守护进程:A server which is a type of long-running program called a daemon process (the
dockerdcommand). - REST API: A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.
- 客户端:A command line interface (CLI) client (the
dockercommand).

可以使用CLI或者REST API 通过脚本或者CLI命令和docker 守护进程进行交互。
守护进程创建并管理docker对象。如容器,镜像,网络和卷等。
使用Docker可以做什么?
快速,持续交付你的应用(Fast, consistent delivery of your applications)
Containers are great for continuous integration and continuous delivery (CI/CD) workflows.
响应式部署和扩展(Responsive deployment and scaling)
在同样的硬件上运行更多的工作负载(Running more workloads on the same hardware)
Docker架构(Docker architecture)
Docker 采用C/S架构,客户端发送命令给docker守护进程,去构建,运行,分发你的docker容器。客户端和守护进程可以运行在同一个机器上,也可以通过客户端连接远程的docker守护进程。docker客户端和守护进程通过REST API,UNIX 端口 或者网络接口进行通信。

Docker守护进程 Docker daemon (dockerd):
监听dockerAPI 请求和管理docker对象(镜像,容器,网络,卷)一个docker的守护进程同样可以与其他docker守护进程交互去管理其他docker服务。
Docker客户端 Docker client(docker):
docker客户端是和docker交互的主要方式,当你使用命令例如:docker run,客户端会通过Docker API发送请求给dockerd。docker客户端可以和多个守护进程交互。
Docker registries:
用来存储docker镜像。You can even run your own private registry. If you use Docker Datacenter (DDC), it includes Docker Trusted Registry (DTR).
当使用docker pull 或者docker run命令,需要的镜像会在你配置的仓库拉取下来。当你用docker push命令,你的镜像就会推送到你配置的远程仓库。
Docker 对象(Docker objects):
镜像(IMAGES):An image is a read-only template with instructions for creating a Docker container. Often, an image is based on another image, with some additional customization.
容器(CONTAINERS):A container is a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI.
docker run command:
$ docker run -i -t ubuntu /bin/bash
当你运行这个命令后,会发生如下事情:
- 如果你本地没有ubuntu,docker会去你配置的仓库拉取,和手动运行docker pull ubuntu 一样。
- docker创建了一个新的容器,和手动运行docker container create 命令一样。
- docker分配一个可读写的文件给容器作为它的最后一层,它允许容器在本地环境中去创建或修改。
- docker会通过默认网络去连接容器,这个是因为你没有给他分配任何网络选项,包含分配一个IP地址给容器。默认情况下,容器会通过主机的网络去连接外部网络。
- docker 启动容器并执行/bin/bash。因为容器以交互的方式连接到终端(由于-i 和-t 标签),你可以用你的键盘去输入内容而通过终端去显示输出结果。
- 当你输入 exit 结束 /bin/bash 命令,容器停止了但是并未删除,你可以重新启动它或者删除它。
SERVICES:
允许跨多个docker守护进程扩展容器,这些守护进程通过docker API进行通信。一个服务允许你定义所需的状态,例如在给定时间提供足够数量可用的服务。默认情况下,服务会负载到每一个工作节点。
CentOS安装docker:https://docs.docker.com/install/linux/docker-ce/centos/
Docker run hello-world
启动docker:systemctl start docker
运行hello world:docker run hello-world
[root@tiandz ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5
Status: Downloaded newer image for hello-world:latest Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
. The Docker client contacted the Docker daemon.
. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal. To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/ For more examples and ideas, visit:
https://docs.docker.com/get-started/
官方文档:https://docs.docker.com/engine/docker-overview/
Docker 基础入门的更多相关文章
- Docker基础入门
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 小白学 Python 爬虫(4):前置准备(三)Docker基础入门
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Docker基础入门及示例
Docker近几年的发展可谓一日千里,特别从是2013年随着一个基于LXC的高级容器引擎开源,到现在,其在linux和windows上都有了很好的支持,并且已经有很多公司将docker用于实际的生产环 ...
- Docker系列03—Docker 基础入门
本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...
- docker基础入门理解
本文简单的介绍了一下docker的一些优点,以及使用方法 1. 理解docker 1.1 docker是什么? 1.2 为什么要使用Docker? 2. docker安装 3. docker-容器,镜 ...
- docker基础入门之二
一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和ke ...
- 容器技术之Docker基础入门
前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...
- Docker系列01—Docker 基础入门
一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...
- docker基础入门之一
一.概述 1.传统虚拟化技术: 纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统: 硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率: 解决方 ...
- Docker基础入门实践
原文地址 基本概念 Docker三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 镜像可以理解为只读模板,如包含一个centos操作系统环境 容器 Do ...
随机推荐
- SSL握手两大加密算法 : RAS算法 和 DH算法解析
写下此博客记录心得体会,如有不足之处请指正 先是手稿笔记 : 正文: 在Https协议中,Client端和Server端需要三个参数才能生成SessionKey来加密信息. 三个参数分别是 ...
- Spring 事务管理的使用
Spring提供了2种事务管理 编程式的 声明式的(重点):包括xml方式.注解方式(推荐) 基于转账的demo dao层 新建包com.chy.dao,包下新建接口AccountDao.实现类Acc ...
- 小白学 Python 爬虫:自动化测试框架 Selenium 从入门到实战
引言 前面连续几篇爬虫实战不知道各位同学玩的怎么样,小编是要继续更新了,本篇我们来介绍一个前面已将安装过的工具: Selenium ,如果说是叫爬虫工具其实并不合适,在业界很多时候是拿来做自动化测试的 ...
- A Kill Cord for your Laptop
前言 昨晚在朋友圈看到国外一篇文章利用U盘锁笔记本电脑,刚好有一个坏的金士顿U盘,所以就折腾了一下. 准备 USB设备*1 Arch系统*1 走过的坑 因为systemd-udevd带起来的进程是ro ...
- AOP的基本认识
一.AOP的概念 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善. ...
- VSCODE 教程网
http://geek-docs.com/vscode/vscode-tutorials/vs-code-text-selection.html
- 2019年7月22日A股科创板开板首日行情思考
2019年7月22日A股科创板开板首日行情思考 原因:2019科创板开板交易 盘面:科创板交易活跃,首批上市25只股票大涨,最高达5倍涨幅:主板交投低迷,量能萎缩,大部分股票下跌. 操作:加仓 西安银 ...
- 201771010131-王之泰 实验一 软件工程准备—<通读《现代软件工程—构建之法》后所思所想>周学习总结
项目 内容 作业所属课程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/12369881. ...
- 「AHOI2014/JSOI2014」拼图
「AHOI2014/JSOI2014」拼图 传送门 看到 \(n \times m \le 10^5\) ,考虑根号分治. 对于 \(n < m\) 的情况,我们可以枚举最终矩形的上下边界 \( ...
- C#操作Word的超详细总结 ---转载
C#操作Word的超详细总结 本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设 ...