Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

Gitbook教程从入门到实践

Docker菜鸟教程

阮一峰日志:Docker入门教程

阮一峰日志:Docker微服务教程

Docker官方文档

Docker入门(Mooc)

第一个Docker化的Java应用(Mooc)

Docker环境下的前后端分离项目部署与运维(Mooc)

Docker+k8s微服务容器化实践(Mooc)

系统学习Docker,践行DevOps理念(Mooc)

openstack最新技术解析(Mooc)

一。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(一)的更多相关文章

  1. 附007.Docker全系列大总结

    Docker全系列总结如下,后期不定期更新. 欢迎基于学习.交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识. 若发现任何错误或纰漏,留言反馈或右侧添加 ...

  2. 第 2 章 容器架构 - 007 - Docker 架构详解

    Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 ...

  3. 006.Docker网络管理

    一 docker网络模式 Docker使用Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Name ...

  4. 007、Docker 架构详解(2018-12-24 周一)

    参考https://www.cnblogs.com/CloudMan6/p/6763789.html     Docker核心组件包括:       Docker 客户端   Docker Clien ...

  5. 007.基于Docker的Etcd分布式部署

    一 环境准备 1.1 基础环境 ntp配置:略 #建议配置ntp服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd ...

  6. docker 学习

    vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 --r ...

  7. 深入Docker

    深入Docker 作者:ramanallamilli 随着持续交付等新型开发方法的兴起,工程师再也不会凡事靠运气,希望提交代码上去后,它能在未知环境正常运行.我们可以看到业界这样的转变——开发,质量保 ...

  8. 【云计算】docker三剑客如何支持分布式部署?

    This blog will explain how to create multi-container application deployed on multiple hosts using Do ...

  9. calico docker 应用实例

    在上一篇文章<quay.io/coreos/etcd 基于Docker镜像的集群搭建>中,介绍了ETCD集群的搭建.在此基础上,我们进一步实践calico docker的应用. PaaS ...

随机推荐

  1. 深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction

    转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应 ...

  2. word2007导出pdf带书签

    1.关闭所有word文档 2.下载Word_2007_SaveAsPDFandXPS_12.0_XiaZaiBa.exe安装 3.如果出错请重启PC

  3. linear_func

    ''' class torch.nn.Linear(in_features,out_features,bias = True )[来源] 参数: in_features - 每个输入样本的大小out_ ...

  4. windows javaee 安装

    一. 下载jdk 并安装 二. 配置环境变量 JAVA_HOME:D:\Java\jdk1..0_25 CLASSPATH :.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt. ...

  5. Pymongodb

    首先安装pymongo模块 pip install pymongo 利用Python程序完成增删改查 import pymongo import json from bson import Objec ...

  6. 多对多关系表的创建方式、forms组件

    目录 多对多关系表的三种创建方式 1.全自动,Django自动创建 2.纯手撸 3.半自动(推荐使用) forms组件 小例子 forms组件 校验器 钩子函数 局部钩子 全局钩子 forms组件常用 ...

  7. layui 表格设置td的宽度

    layui 表格设置td的宽度, td{ min-width: 150px; max-width: 200px; } 超出长度隐藏 overflow: hidden; text-overflow: e ...

  8. HTTP教程

    适合人群 本教程已为计算机学科毕业生和Web开发人员准备,帮助他们了解与超文本传输​​协议(HTTP)相关的基本到高级概念. 预备知识 在继续本教程之前,最好对Web概念,Web浏览器,Web服务器, ...

  9. sql2008 误操作还原至指定时间点

    --drop database db --创建一个测试库 create database db go --备份一个完整备份文件 backup database db to disk = 'd:\db. ...

  10. [luogu]P3939 数颜色[二分]

    [luogu]P3939 数颜色 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n 只兔子排成长长的一排, ...