1. Docker介绍

  1. Docker由dotCloud公司发起的一个内部项目,后来Docker火了,dotCloud公司改名为Docker了;
  2. Docker使用了Go语言开发,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术;
  3. Docker vs VM如下图所示:

2. Docker的安装

Docker现在区分Community Edition,简称:CE版本;Enterprise Edition,简称:EE。两个版本,一个免费,一个付费。所以我们安装的是的CE版本。安装步骤在官方完成有详细的的说明,这里略过。

我在DO上的服务器操作系统版本是:Ubuntu 14.04 LTS。安装官方文档,能顺利安装成功。

Docker CE for Ubuntu

3. Docker架构

4. 运行第一个容器

运行容器可以通过两种方式:

4.1 通过Dockerfile构建一个镜像,上传到Docker Hub上,然后在host主机上pull这个镜像,运行一个容器

4.2 通过docker pull从Docker Registry上获取一个镜像,然后通过这个镜像运行容易。

本文主要说明第一种情况,流程如下图所示:

步骤1

本地机器上新建一个文件夹,创建一个Dockefile文件,创建一个dist目录。dist放置了一个简单的hml页面,页面加载了2个图片,也就是我们前端的代码。

Dockefile文件内容如下:

FROM nginx:1.11.5
ADD dist/ /usr/share/nginx/html

告诉Docker引擎下载Nginx 1.11.5版本的镜像,然后复制dist文件夹内容到
/usr/share/nginx/html目录中。

执行生成镜像命令:

docker build -t bage88/docker-demo:0.0.1 -f Dockerfile .

bage88/docker-demo:我再Docker Hub创建的repository的名称,必须一致,才能保证后面能正确将本地的镜像推动的Docker Hub仓库中。

0.0.1:镜像的版本号。

步骤2

将生成好的镜像推送到Docker Hub仓库中。命令如下:

docker push bage88/docker-demo:0.0.1

步骤3

需要从Dock Hub获取镜像,默认未修改仓库地址,默认都是从Docker Hub上获取镜像。现在我们来获取刚推送到Docker Hub上的镜像。命令如下:

docker pull bage88/docker-demo:0.0.1

步骤4

最后一步也是最简单的一步,根据镜像运行容易。

docker run -d -p 80:80  bage88/docker-demo:0.0.1

在浏览器中访问地址:http://138.68.40.38/,可以看到下面的界面,表面当前的容器运行成功了。

参考资料

  1. Docker —— 从入门到实践
  2. Docker架构详解
  3. Docker官网

运行第一个Docker容器-Docker for Web Developers(1)相关推荐

  1. 外部访问docker容器(docker run -p/-P 指令) docker run -d -p 5000:5000 {hostPort:containerPort(映射所有接口地}

    https://www.cnblogs.com/williamjie/p/9915019.html (2)-p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器.支持的格式有 ...

  2. 进入Docker 容器 docker exec [CONTAINER ID] bin/bash报错问题

    问题 (base) Eistert-2:xxxx-web eistert$ docker exec -it f365682ef502 /bin/bash OCI runtime exec failed ...

  3. Docker容器---Docker简介与原理

    1. 概述 1.1 容器概念 docker是一个容器,所谓容器,就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等,kvm虚拟机,linux, ...

  4. 外部访问docker容器(docker run -p/-P 指令)

    容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P(大写) 或 -p (小写) 参数来指定端口映射. (1)当使用 -P 标记时,Docker 会随机映射一个 49000~4990 ...

  5. 一、docker容器使用以及搭建企业级web网站

    一.docker容器 docker和k8s的区别? 区别:1.k8s是一种开放源码的容器集群管理系统,而Docker是一种开放源码的应用容器引擎:2.k8s是一套自动化部署工具,可以管理docker容 ...

  6. Docker容器运行后退出,怎么才能一直运行?

    现象 启动docker容器      docker run –name [CONTAINER_NAME] [CONTAINER_ID] 查看容器运行状态      docker ps -a 发现刚刚启 ...

  7. 进入正在运行的Docker容器的4种方式

    进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker attach进入Docker容器 Docker提供了a ...

  8. linux docker 容器运行后不退出的方法

    现象 启动docker容器  docker run –name [CONTAINER_NAME] [CONTAINER_ID]  查看容器运行状态  docker ps -a  发现刚刚启动的mydo ...

  9. docker容器修改开机启动服务器,docker-修改容器挂载目录的3种方法小结

    方式一:修改配置文件(需停止docker服务) 1.停止docker服务 systemctl stop docker.service(关键,修改之前必须停止docker服务) 2.vim /var/l ...

最新文章

  1. retinaface自定义增强
  2. 最全的时间类解析。 SimpleDateFormat + Date() 和 DateTimeFormatter + LocalDate()的区别与使用场景
  3. Visual Studio进行linux远程开发
  4. 工程师如何解决穿衣搭配烦恼?——滴搭平台与算法 1
  5. Pycharm导入anaconda环境
  6. 带你认识MindSpore量子机器学习库MindQuantum
  7. linux dns服务无效,Linux下搭建DNS服务器及踩坑
  8. .Net中的AOP系列之《单元测试切面》
  9. 【Codeforces Round #185 (Div. 2) C】The Closest Pair
  10. vivado软件安装教程
  11. 模糊控制 进化算法 PID参数整定
  12. android imageview 图片模糊,android – Imageview变得模糊
  13. 初识vbs脚本(简单的逗女孩的记事本炸弹及解除)
  14. //18. 定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),fn1()是虚函数,DerivedClass也有成员函数fn1()
  15. 前端面试被问到项目中的难点有哪些?
  16. 接口测试必知必会知识点
  17. 《黑客大曝光:移动应用安全揭秘及防护措施》一2.1 基础移动网络功能
  18. 服务器修改万兆网卡为千兆,从千兆到万兆 惠普服务器网卡横向导购 上
  19. 算法竞赛入门经典——训练指南
  20. 移动开发:Android数据连接浅析

热门文章

  1. 五、线程的概念和特点
  2. 三、单链表增删改查原理和代码实现
  3. AI 利用BP算法及Sigmoid函数,研究函数f(x)=2sinx-0.7的逼近问题-实验报告
  4. 【字节流处理】linux下uint8转float的注意事项
  5. Java并发学习三:银行转账的死锁问题解决及示例
  6. ivf技术_体外受精技术介绍 谁需要IVF技术帮助
  7. 李艳芳北京应用物理与计算机,太赫兹量子级联激光器有源区增益分析和设计-太赫兹科学与电子信息.PDF...
  8. c3074 无法使用带圆括号的_小学生常见易考标点符号使用方法及练习(含答案)...
  9. 2020年班级管理html,2020年七年级班主任工作计划
  10. 搭建Harbor 2.x仓库 - docker私仓搭建