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入门教程,本文是系列入门教程的第一篇,介绍了 ...
随机推荐
- elasticsearch各种服务链接
查看elasticsearch信息http://localhost:9200/ 查看某个索引信息http://localhost:9200/index_name例如:http://localhost: ...
- asyncio之异步上下文管理器
异步上下文管理器 前面文章我们提到了上下文管理器,但是这个上下文管理器只适用于同步代码,不能用于异步代码(async def形式),不过不用担心今天我们就来讨论在异步中如何使用上下文管理器. 特别提醒 ...
- Xshell登录Vagrant方式
Xshell登录Vagrant方式 我上一篇文章 介绍了vagrant 如何创建虚拟机集群,在上篇文章的基础上,用xshell 登录 虚拟机发现 默认是无法使用账号密码登录root账号,只能使用vag ...
- mac下更新node版本
node有一个专门管理node.js版本的包叫作:n: 查看当前 node版本:node -v 安装n工具包:sudo npm i -g n 安装最新版node.js:sudo n stable 安装 ...
- 图解centos7如何关闭ipv6仅使用ipv4
方法/步骤 使用ifconfig命令查看网卡信息,如果出现inet6 fe80::20c:29ff:fed0:3514,说明机器开启了ipv6,如下图所示: 编辑/etc/sysctl.c ...
- Java csv
CsvWriter csvWriter = new CsvWriter("data2019052803.csv", ',', Charset.forName("UTF-8 ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_05-新增页面-服务端-接口测试
其从程序swaggerUI测试 pageName和别名都是 test003 { "dataUrl": "string", "htmlFileId&qu ...
- 用Keras搭建神经网络 简单模版(四)—— RNN Classifier 循环神经网络(手写数字图片识别)
# -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) from keras.datasets import mnist fro ...
- Consul 随记
consul 包含多个组件,但是作为一个整体对外提供服务发现和服务配置工具: 提供的关键特性有: 服务发现:发现的是服务对应的IP地址和PORT端口号 健康检查:检查服务节点状态 Key/Value存 ...
- DrawRect 内存问题
DrawRect实现画板将会大量产生内存问题. 具体请看:http://bihongbo.com/2016/01/03/memoryGhostdrawRect/ 可能的原因有两个: 一是在手指绘制的过 ...