Docker 入门 第一部分: 定位和设置
Docker 入门 第一部分: 定位和设置
docker入门教程可以让你学会一下内容:
1. 搭建你的Docker环境(也就是本页内容)
2. 构建一个镜像,并以一个容器的方式运行它
3. 扩展你的应用程序以运行多个容器
4. 跨集群发布你的应用程序
5. 通过添加一个后端数据库来堆叠服务
6. 把你的应用程序部署到生产环境
Docker概念
docker是一个用来为开发者和系统管理员提供用容器来开发、部署、运行应用程序的平台。使用Linux容器部署应用程序被称作容器化。容器不是一个新概念,它们的用途是轻松部署应用程序
容器化越来越受欢迎,因为容器:
* Flexible 灵活:即使最复杂的应用程序也可以给容器化
* Lightweight 轻量:多个容器可以利用并共享主机内容
* Interchangeable 可替换:你可以快读部署更新和升级
* Portable 便携:你可以在本地构建,然后部署到云,且可以在任何地方运行
* Scalable 可扩展:你可以增加并自动发布容易副本
* Stackable 可堆叠:你可以快速垂直的堆叠服务
镜像和容器
一个容器通过一个镜像运行起来。镜像是一个可运行的包,它包含运行一个应用程序所需的所有内容——代码、运行时、库文件、环境变量和配置文件。
一个容器就是一个镜像的一个运行时实例——镜像在内存中运行时的状态(也就是一个有状态的镜像或者一个用户进程)。运行docker ps命令后你可以看到一个你正在运行的容器的列表,就好像你在Linux中一样。
容器和虚拟机
每一个容器天生就可以运行在Linux上并和其他的容器共享主机内核。它运维一个独立的进程,不会比其他可执行程序占用更多内存,这使它变得轻量化。
相比之下,一个虚拟机(Virtual Machine)运行一个完整的“guest“操作系统,通过一个hypervisor对主机资源进行访问。通常,虚拟机提供的环境,比大多数应用程序需要的资源要多。

准备你的Docker环境
在支持的平台上安装Docker社区版或企业版的一个还在维护的版本。
完整的 Kubernetes 集成
- Kubernetes on Docker for Mac 的有效版本是 17.12 Edge (mac45) 或者 17.12 Stable (mac46) 更高版本.
- Kubernetes on Docker for Windows 的有效版本只有 18.02 Edge (win50) 和更高的版本
| 安装Docker |
|---|
测试 Docker 的版本
- 运行
docker --version并确认你有一个被支持的Docker版本
docker --version
Docker version 17.12.0-ce, build c97c6d6
- 运行
docker info(或者docker version)来查看你安装的Docker的更多信息:
docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.12.0-ce
Storage Driver: overlay2
...
避免权限错误(可使用
sudo) 把你的账户添加到docker组。
测试 Docker 安装
- 通过运行一个简单的 Docker 镜像——hello-world,来测试你的安装:
hello-world 是docker的最小化镜像实例中的一个:
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
- 列出已经下载到你的机器的
hello-world镜像
docker image ls
- 列出
hello-world容器(通过镜像生成的),它会在显示一些消息后退出,如果它还在运行,你就不需要-all选项。
docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS
54f4984ed6a8 hello-world "/hello" 20 seconds ago Exited (0) 19 seconds ago
回顾
## List Docker CLI commands
docker
docker container --help
## Display Docker version and info
docker --version
docker version
docker info
## Execute Docker image
docker run hello-world
## List Docker images
docker image ls
## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq
总结
容器化使用 CI/CD 浑然一体,例如:
- 应用程序没有系统依赖
- 可以将更新推送到分布式应用的任何一部分
- 可以优化资源密度
使用 Docker ,扩展你的应用程序的问题在于启动新的可执行文件,而不是运行臃肿的虚拟机。
Docker 入门 第一部分: 定位和设置的更多相关文章
- Docker入门 第一课 --.Net Core 使用Docker全程记录
微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的. 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Dock ...
- docker 入门第一步
docker 安装 利用yum 安装 yum 源更新到最新版本,命令: yum update 需要安装工具 net-tools 命令:yum install -y net-tools 配置docke ...
- Docker入门第一章
Docker为什么出现? 一款产品:开发到上线 两套环境!应用环境,应用配置! 可能在开发环境你的产品是正常的,但是到了线上环境你的产品可能就会出现各种原因,或许是因为环境的不同,也可能是因为配置的不 ...
- Docker入门 .Net Core 使用Docker全程记录
https://www.cnblogs.com/flame7/p/9210986.html Docker入门 第一课 --.Net Core 使用Docker全程记录 微服务架构无疑是当前最火热的 ...
- Docker学习第一天(Docker入门&&Docker镜像管理)
简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...
- Docker 入门 第三部分: 服务
目录 Docker 入门 第三部分: 服务 先决条件 介绍 你的第一个 docker-compose.yml 文件 docker-compose.yml 运行你新建的负载均衡应用 扩展应用程序 卸载应 ...
- Docker 入门实践
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法 ...
- 这可能是最为详细的Docker入门吐血总结
这可能是最为详细的Docker入门吐血总结 https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html Docker是什么? 在计算机技术日新 ...
- Docker入门基础(一)
Docker入门基础 Linux只存在文件目录,不存在“盘”的概念 Dockers优点:方便部署环境.资源占用少(微服务) Docker的三大概念 镜像:类似虚拟机的镜像.用俗话说就是安装文件.容器: ...
随机推荐
- 通过C#的HttpClient模拟form表单请求
post提交表单一般无非是一般text文本和文件类型,如下 <input type="file"/> <input type="text"/& ...
- Asp.Net_Mvc3.5语法_<%%>的用法
一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或 者javascript代码,而在asp.net中用的是.net平台下支持的语言.特别 注意:服务 ...
- 关于GitHub上传没有记录(小绿块不显示的问题)
最近开始使用上github来上传保存自己在学习中所写过的代码,打算将自己每天的成果能有个保存,然后就利用上GitHub这么一个利器. 听说GitHub的那个绿块是用来记录每天的上传记录的,结果我将代码 ...
- python 游戏(猜单词Hangman)
1.游戏思路和流程图 实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加) 游戏流程图 2. 单词库和模块 i ...
- c# winform调用摄像头识别二维码
首先我们需要引用两个第三方组件:AForge和zxing. Aforge是摄像头操作组件,zxing是二维码识别组件.都是开源项目.避免重复造轮子. 其实一些操作代码我也是参照别人的,若侵犯您的版权, ...
- 12.18daily_scrum
本软件中的最后一个界面——“关于”界面的设计已经开始进行,数据传输的内容也差不多进行过半,最主要的任务依旧在测试过程中,我们组接下来还是要大力加强测试的强度和数量,注意边际数据和错误数据的测试处理: ...
- Daily Scrum NO.4
工作概况 符美潇(PM) 昨日完成的工作 1.Daily Scrum.日常会议及日常工作的分配和查收. 2.解决并录入了一个严重的过滤器BUG,该BUG会导致获取子链接的严重异常. 3.在TFS上进行 ...
- Daily Scrum - 12/04
Meeting Minutes 与Qiufeng, Bojie, Zhongqiu, Ran, Travis一起讨论. 确定了最后的UI及Feature. 开始Code Review, 以及有计划的M ...
- JS 一些问题与解决方法
一.post/get传输json数据中包含特殊字符 在使用HTTP请求传输数据时,因为他本身也需要一些字符做标记,比如= &,所以传输的数据中如果有特殊字符,就会被错误的理解成标记字符做了一些 ...
- 获得用户的真实IP地址
/** * 获得用户的真实IP地址 * * @access public * @return string */if (!function_exists('get_real_ip')){ functi ...