007/Docker(一)
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
一。Mooc--Docker基础
1。Docker架构如下所示:


2。Docker常用命令
.查看有哪些镜像
$ docker images 2.运行docker
$ docker run ubuntu echo hello docker //ubuntu为images的名字
//上述做的事情,用ubuntu这个image,在这里面运行了echo hello docker这一命令.上述输出为hello docker

3.运行nginx服务器
$ docker run nginx //运行nginx这个image
//说明:docker在运行容器之前先看本地是否有所需要容器运行的image,如果没有则从远端registry下载

。查看本地有哪些image
$ docker images
.执行命令
$ docker run -p : -d daocloud.io/nginx //返回docker的container的ID
//说明:p是做端口映射,将nginx的80端口映射到本地8080端口; -d是允许这个程序直接返回,即把这个container做为守护进程来执行

.查看所有当前正在运行的docker的container
$ docker ps
//说明:可查看运行的docker的container以及端口之间的映射关系

说明在本地8080端口开启了一个nginx服务,地址栏访问验证:localhost:8080

上述以在本地开启了一个nginx服务,希望这个页面呈现docker相关信息。实现步骤:
【1】。创建一个index.html文件,并加入内容

【2】。ubuntu安装nginx
。安装nginx
$ sudo apt-get install nginx
//nginx目录位置:/usr/share/nginx
.启动nginx
/etc/init.d/nginx start
【3】。将index.html文件拷备到容器中
//9.拷备index.html文件到容器中
docker cp index.html 容器ID://usr/share/nginx/html //容器ID查询方式:正在运行的容器
docker ps
.停止docker
$ docker stop 容器ID
//容器ID通过docker ps查询

浏览器访问:localhost:8080

.查看正在运行的容器
$ docker ps .查看所有容器
$ docker ps -a
//12.停止某个运行的的容器 $ docker ps
$ docker stop 容器ID //13。移除某个容器 $ docker ps -a
$ docker rm 容器ID1 容器ID2
常用命令小结

第3章:Dockerfile介绍
3。dockerfile(地址)
【1】。通过编写简单的文件自创docker镜像
上节应用docker commit创建了一个新的image
.查看运行的容器
$ docker ps .创建一个新的镜像image
$ docker commit -m 'fun' 容器ID 镜像名字

第一个dockerfile



上述成功用dockerfile形式构建了自己的image.可以image中运行容器执行命令行。
【2】dockerfile实战
【1】基础镜像 【2】作者
【3】运行命令:
run apt-get upate //更新ubuntu的库
run apt-get install -y nginx //安装nginx,-y不要询问
COPY //复制文件
ENTRYPOINT //入口,目的将nginx在前台执行而不是做为守护进程执行.[ , ,] 会给拆分成一条命令
EXPOSE //暴露端口
.创建一个目录
$ mkdir dockerfile2 .创建文件(注意:该Dockerfile文件名不能为其他,只能为Dockerfile)
$ touch Dockerfile $ vi Dockerfile

。创建index.html
$ touch index.html //编辑文件
vi index.html //向其中添加内容today is very good
.构建镜像
$ docker build -t xbf/hello-nginx . //构建完成 .运行镜像
$ docker run -d -p : xbf/hello-nginx
//将80端口映射到本地8089
.查看运行的镜像
$ docker ps .查看返回结果
$ curl http://localhost:8089

Dockerfile语法


镜像是分层被存储

下述为一个已经存在的image镜像,下述三层为只读的。当image被运行为容器,则会产生新的一层,最上层为容器层,可读可写。
为什么要分层:存储可以共享,存储压力小。

Volumn:提供独立于容器之外的持久化存储
可提供容器与容器之间共享的数据
第4章:存储
Volumn操作:
1。运行一个nginx容器,通过-v挂载一个卷

2。本地一个目录,挂载到容器数据卷中

第5章:镜像仓库
registry:镜像仓库(saas的服务)

术语:

【1】host:宿主机(正在使用的这台电脑)
【2】镜像:可多远端拉取的或本地程序构建的一些可重复使用的软件打包
【3】容器:是镜像运行的实际
【4】仓库:很多镜像注册的仓库
【5】守护程序:docker守护进程用来和registry共享,用来接受用户的命令
【6】客户端:用来给守护程序输送命令以及进行操作

国内一些仓库:daocloud /时速云 /aliyun
registry实战
第6章:多容器app
上述讲述的均为单容器app应用,本意为利用docker-compose工具拉起一个多容器app应用
1.docker-compose
【1】docker-compose安装
compose为独立软件,所以需要单独安装。
.安装docker-compose
$curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose .查看docker-compose
$ ls -l /usr/local/bin/docker-compose .查看docker-compose版本
$ docker-compose --version 4.设置所有用户可用
$ chmod a+x /usr/local/bin/docker-compose

【2】docker-compose实战(docker-compose三层架构)

nginx:接入层 /ghost app:业务层 / mysql:数据层

【3】docker-compose.yml常用命令

docker-compose命令


007/Docker(一)的更多相关文章
- 附007.Docker全系列大总结
Docker全系列总结如下,后期不定期更新. 欢迎基于学习.交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识. 若发现任何错误或纰漏,留言反馈或右侧添加 ...
- 第 2 章 容器架构 - 007 - Docker 架构详解
Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 ...
- 006.Docker网络管理
一 docker网络模式 Docker使用Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Name ...
- 007、Docker 架构详解(2018-12-24 周一)
参考https://www.cnblogs.com/CloudMan6/p/6763789.html Docker核心组件包括: Docker 客户端 Docker Clien ...
- 007.基于Docker的Etcd分布式部署
一 环境准备 1.1 基础环境 ntp配置:略 #建议配置ntp服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd ...
- docker 学习
vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 --r ...
- 深入Docker
深入Docker 作者:ramanallamilli 随着持续交付等新型开发方法的兴起,工程师再也不会凡事靠运气,希望提交代码上去后,它能在未知环境正常运行.我们可以看到业界这样的转变——开发,质量保 ...
- 【云计算】docker三剑客如何支持分布式部署?
This blog will explain how to create multi-container application deployed on multiple hosts using Do ...
- calico docker 应用实例
在上一篇文章<quay.io/coreos/etcd 基于Docker镜像的集群搭建>中,介绍了ETCD集群的搭建.在此基础上,我们进一步实践calico docker的应用. PaaS ...
随机推荐
- Java web项目搭建系列之一 Eclipse中新建Maven项目
前提条件: 已经安装好JDK 已经安装好Maven 已经安装好Eclipse 已经安装好Maven插件 在Eclipse中新建Maven项目 [File]→[New]→[Other...] [Mave ...
- qthread线程
一般调用quit()函数之后可以紧接着调用wait()函数确保线程退出.sleep()等让线程休眠的函数不需要调用,因为Qt中线程是事件驱动机制.但是如果是继承的QTHread类,在run()函数中使 ...
- linux中未实现的系统调用
afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, ...
- 1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录
<Redis深度历险:核心原理和应用实践>1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录http://naotu.baidu.com/file/b874e2624d3f37 ...
- vue2.0 之 生命周期
一.vue1.x与vue2.x生命周期的变化区别及含义表(图表摘自网络) 二.vue2.x生命周期图和各阶段具体含义 beforecreated:el 和 data 并未初始化 created: ...
- 面试官:SpringBoot jar 可执行原理,知道吗?
文章篇幅较长,但是包含了SpringBoot 可执行jar包从头到尾的原理,请读者耐心观看.同时文章是基于 SpringBoot-2.1.3进行分析.涉及的知识点主要包括Maven的生命周期以及自定义 ...
- MySQL简版(二)
第一章 表的约束 1.1 概念 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 1.2 分类 主键约束:primary key. 非空约束:not null. 唯一约束:unique. 外键 ...
- POJ2942 UVA1364 Knights of the Round Table 圆桌骑士
POJ2942 洛谷UVA1364(博主没有翻墙uva实在是太慢了) 以骑士为结点建立无向图,两个骑士间存在边表示两个骑士可以相邻(用邻接矩阵存图,初始化全为1,读入一对憎恨关系就删去一条边即可),则 ...
- 6377. 【NOIP2019模拟2019.10.05】幽曲[埋骨于弘川]
题目描述 题解 随便bb 详细题解见 https://www.cnblogs.com/coldchair/p/11624979.html https://blog.csdn.net/alan_cty/ ...
- 前端面试题常考&必考之--清除浮动的方法
浮动 问题:子元素设置了float后,脱离父元素,导致父元素无法撑开?(也就是子元素的高度没有过渡到父元素) 例子: 检查元素的效果: (三种)常用的解决办法: 1>额外标签法,添加一个空的di ...