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入门教程,本文是系列入门教程的第一篇,介绍了 ...
随机推荐
- Raspberry Pi 4B Web服务器配置
目录 1. 安装nginx 2. 安装PHP 3. 修改nginx配置文件 4. 安装MariaDB数据库 参考资料1:树莓派4B安装PHP7.3 + Nginx + MySQL 教程 参考资料2:[ ...
- Js 中那些 隐式转换
曾经看到过这样一个代码: (!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]*~+[]]] = sb , 你敢相信, ...
- elasticsearch _create api创建一个不存在的文档
https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html当我们索引一个文档, 怎么确认我们正在创建一个完全 ...
- RAFT选举算法-分布式数据库困惑
在做HIS研发工作的时候一直想完善其数据组件,想做一个分布式的数据库支持系统.但一直以来都不清楚这个选举算法应怎么做,原来有一个叫raft的算法https://www.cnblogs.com/just ...
- docker运行puppeteer出现Page crash解决方案
Docker默认文件空间64MB.如果puppeteer运行的时候超过这个内存就出现了.Page crash.可以使用docker run --shm-size=256m指定一个更大的内存即可.
- php中_initialize()函数与 __construct()函数的区别说明
_initialize()方法是在任何方法执行之前,都要执行的,当然也包括 __construct构造函数. 也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initial ...
- C++重写(覆盖)、重载、重定义、多态
1 重写(覆盖)override override是重写(覆盖)了一个方法,以实现不同的功能.一般用于子类在继承父类时,重写(覆盖)父类中的方法.函数特征相同,但是具体实现不同. 重写需要注意: 被重 ...
- mac安装mysql数据库及配置环境变量
mac安装mysql数据库及配置环境变量 mac安装mysql数据库及配置环境变量 原文文链接:https://blog.csdn.net/qq_36004521/article/details/80 ...
- SD卡状态监听(无序广播)
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Int ...
- 关于Intel处理器架构中AVX2里Gather特性的说明
在Intel Haswell架构里引入了Gather特性.它使得CPU可以使用向量索引存储器编址从存储器取非连续的数据元素.这些gather指令引入了一种新的存储器寻址形式,该形式由一个基地址寄存器( ...