文档章节

Docker学习笔记之 一、helloword

黎明你好
 黎明你好
发布于 2017/08/28 16:18
字数 885
阅读 7
收藏 0

1.1 介绍概念

Docker:

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

  • Docker通常用于如下场景:
    • web应用的自动化打包和发布;
    • 自动化测试和持续集成、发布;
    • 在服务型环境中部署和调整数据库或其他的后台应用;
    • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

镜像:

Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是UnionFS。在Docker镜像的最底层是bootfs。这一层与典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。Docker在bootfs之上的一层是rootfs(根文件系统)。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。

容器:

Docker的容器(container)其实就是一个进程的容器,而并不是一个全虚拟化的操作系统,所以他不会有什么init进程。docker将进程、进程所需要的操作系统、运行环境称为容器。所以它比传统的基于hypervisor的虚拟机拥有更高的效率,并使用更低的资源。它实际上是一个内核级别的虚拟化技术,容器还是在使用宿主机的内核。

仓库:

就是一个存储和共享镜像文件的地方。

1.2 不同操作系统上安装

  1. mac上

  2. centos上

  3. windows上

1.3 运行helloword

1.3.1 先搜索一个容器search

$ docker search nginx

搜索一个叫nginx的容器

1.3.2 下载这个容器pull

$ docker pull nginx

下载一个叫nginx的容器到本地。

1.3.3 运行一个容器出来run

a. 一次运行nginx这个容器,并查看nginx的版本号:

$ docker run nginx nginx -v

输入图片说明


b. 后台运行nginx这个容器,并绑定端口号:

$ docker run --name nginx-hello -d -p 88:80 nginx
  • 这里我们命名新的服务叫nginx-hello,并且映射到88端口,
  • -d 代表后台运行容器,并返回容器ID;
  • -p 传入绑定参数

输入图片说明 输入图片说明

1.3.4 修改运行的容器数据

a.首先查看一下正在运行的容器

$ docker ps

可以看见正在运行的容器列表: 输入图片说明

b.修改正在运行的这个nginx-hello的欢迎页面 首先以交互式终端方式进入nginx-hello, 并执行bash获取一个可操作的shell:

$ docker exec -it nginx-hello bash
$ echo 'hello docker nginx 88' > /usr/share/nginx/html/index.html
  • 这里-it这是两个参数,-i表示交互式操作,-t表示终端。
  • bash放在镜像名字后面是命令,我们运行一个交互式shell。然后使用echo命令,修改nginx的index.html页面的内容:

输入图片说明 输入图片说明

1.3.5 保存这个容器为镜像

我们把nginx的容器修改成了一个版本叫nginx-hello,可以查看他的变动信息:

$ docker diff nginx-hello

输入图片说明

现在把这个修改后进行保存

$ docker commit [这里是id] [这里是保存的名字]

输入图片说明

查看本地的镜像

$ docker images

输入图片说明

© 著作权归作者所有

共有 人打赏支持
黎明你好
粉丝 2
博文 16
码字总数 2187
作品 1
朝阳
程序员
私信 提问
CentOS学习笔记 - 9. docker maven编译基于gofabric8的java应用镜像

续上一篇 1. 修改java工程的pom.xml , 加入docker编译插件 2. 编写Dockerfile, 放到docker目录下面 docker目录在 3. 编译镜像 4. 查看镜像 5. 运行镜像...

七月星空
2017/10/24
0
0
Docker Compose笔记 02 安装笔记

我正在学习Docker容器技术,相关笔记汇总在Docker容器技术 学习笔记汇总 在Docker Compose笔记 01 基础介绍中已经介绍了Docker Compose,这节讲讲安装方法,比较简单,都在https://docs.dock...

iotisan
2017/11/16
0
0
docker swarm auto scale

主旨介绍 使用mac和fusion vm两台主机搭建一个小的docker集群, 采用docker swarm方式搭建. Swarm基本概念: manager:用来管理swarm服务 node: docker enginer节点, 通过manager可以在node上操...

jimmywa
11/06
0
0
Docker容器技术 学习笔记汇总

“如果你不出去走走,你就会以为这就是全世界。” 一直在嵌入式领域,这次遇到Docker算是长了见识。刚好公司同事们对这块了解地不多,那就把Docker容器技术的学习梳理成系列笔记,让其他伙伴少...

iotisan
2017/10/20
0
0
【Shiro】Shiro从小白到大神(一)-Shiro入门

本系列是我在学习Shiro的路上的笔记,第一篇是属于非常入门级别的。 首先是介绍了下shiro,然后进行了一个小例子进行实际的操作 本节操作不涉及数据库,只是文本字符操作认证 Shiro简介: 百度...

qq_26525215
2017/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

makefile 常用函数

Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。今天我们来学习下makefile的常用函数。 《GNU make》h...

科陆李明
15分钟前
3
0
Android 报错 Could not find com.android.tools.build:aapt2:3.2.1-4818971.

报错信息: Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/C:/Users/96110/AppData/Local/Android/Sdk/extras/m2reposito......

lanyu96
28分钟前
1
0
我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
今天
21
0
Python程序员需要知道的30个技巧

1 直接交换两个数字位置 1x, y = 10, 202print(x, y)3x, y = y, x4print(x, y)5#1 (10, 20)6#2 (20, 10) 2 比较运算符的链接 1n = 102result = 1 < n < 203print(result)4# True5result = 1 ......

糖宝lsh
今天
12
0
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部