docker 入门1 - 方向 【翻译】
开始,第 1 部分:方向和设置
欢迎!我们很高兴您想学习 Docker。Docker 入门教程将教您如何:
- 设置 Docker 环境(当前步骤)
- 生成映像并将其作为一个容器运行
- 缩放应用以运行多个容器
- 在群集中分发应用
- 通过添加后端数据库来堆栈服务
- 将应用部署到生产
Docker 概念
Docker 是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用 Linux 容器来部署应用程序称为容器化(containerization)。容器并不是新概念,但通过容器轻松部署应用程序则是最近才实现的。
容器化正在变得越来越流行,因为容器有以下特点:
Flexible 灵活性:即使是最复杂的应用也可以放入容器。
Lightweight 轻量性:容器利用并共享主机内核。
Interchangeable 通用性:可以即时部署更新和升级。
Portable 便携性:可以构建本地应用,部署到云端,并在任何地方运行。
Scalable 可扩展:可以增加和自动分发容器副本。
Stackable 可堆叠:可以即时纵向堆叠服务。
镜像和容器
通过运行镜像启动容器。镜像是一个可执行包,它包括运行应用程序所需的一切内容 -- 代码、运行时、库、环境变量和配置文件。
容器是镜像的运行时实例,执行时镜像在内存中变为什么(即具有状态的镜像或用户进程)。您可以看到运行容器的列表,该列表包含命令 docker ps,就像 Linux 中一样。
容器和虚拟机
容器在 Linux 上本机运行,并与其他容器共享主机的内核。它运行一个离散进程,不会占用比任何其他可执行文件更多的内存,因此它很轻量。
相比之下,虚拟机 (VM) 运行一个成熟的"来宾"操作系统,通过虚拟机管理程序虚拟访问主机资源。通常,VM 提供的环境比大多数应用程序需要的资源更多。

准备 Docker 环境
在受支持的平台上安装维护的 Docker 社区版 (CE) 或企业版 (EE)。
对于完整的Kubernetes集成
- Docker 桌面上的 Kubernetes 适用于 Mac,提供 17.12 Edge (mac45) 或 17.12 Stable (mac46) 及更高版本。
- 适用于 Windows 的 Docker 桌面上的 Kubernetes 在 18.06.0 CE (win70) 和更高版本以及Edge通道中可用。
测试 Docker 版本
运行
docker --version,并确保您具有支持的 Docker 版本:docker --version Docker version 17.12.-ce, build c97c6d6
运行
Docker info(或docker version不带 --),查看有关 Docker 安装的更多详细信息:docker info Containers: Running: Paused: Stopped: Images: Server Version: 17.12.-ce Storage Driver: overlay2 ...
为了避免权限错误(和使用 sudo),请将用户添加到 docker 组。
测试 Docker 安装
通过运行简单的 Docker 镜像 hello-world 来测试您的安装是否正常工作:
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" seconds ago Exited () 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 入门1 - 方向 【翻译】的更多相关文章
- Docker入门教程(九)10个镜像相关的API
Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...
- Docker入门教程(八)Docker Remote API
Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...
- Docker入门教程(七)Docker API
Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- Docker入门教程(五)Docker安全
Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
- Docker入门教程(三)Dockerfile
Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...
- Docker入门教程(二)命令
Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...
- Docker入门教程(一)介绍
http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...
随机推荐
- JAVA - IO - IO的类型(AIO, BIO, NIO)
IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...
- 微信小程序开发常见坑
前段时间稍微涉猎了微信小程序开发,踩了一些坑,在此总结出来,希望能为小伙伴们提供一点帮助. 页面跳转 对于页面跳转,可能习惯性想到wx.navigateTo,但是在跳转到目标页面是一个tab时,此接口 ...
- linux安装puppeteer
1.安装 下载淘宝镜像的,可以同时下载puppeteer和chromium下面两条语句即可 npm install -g cnpm --registry=https://registry.npm.ta ...
- 一个简单的puppeteer爬虫
const puppeteer = require("puppeteer"); const path = require('path'); const pathToExtensio ...
- $this->request->post 和input 区别
$this->request->post 和input 区别 Request是对象,而input是内置函数 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- R-CNN/Fast R-CNN/Faster R-CNN
一.R-CNN 横空出世R-CNN(Region CNN,区域卷积神经网络)可以说是利用深度学习进行目标检测的开山之作,作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2 ...
- kotlin 泛型中类型投射
fun main(arg: Array<String>) { var ints:Array<Int> = arrayOf(, , ) val any =Array<Any ...
- python连接mysql数据库(MySQL)
在介绍python在数据库中的操作之前先简单介绍点mysql中的操作语言: [root@elk-server --]# mysql -u root -p Enter password: Welcome ...
- MySQL SSL配置(mysql5.7和mysql5.6)
专题一:mysql5.7上开启并配置ssl [root@mysqlmaster01 bin]# ./mysql_ssl_rsa_setup --datadir=/data/mysql_data1/ - ...
- 查看oracle数据库的链接数和用户
http://www.cnblogs.com/is1988/archive/2012/11/21/2780067.html 1.查询oracle的连接数select count(*) from v$s ...