运行第一个Docker容器-Docker for Web Developers(1)
1. Docker介绍
- Docker由dotCloud公司发起的一个内部项目,后来Docker火了,dotCloud公司改名为Docker了;
- Docker使用了Go语言开发,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术;
- 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/,可以看到下面的界面,表面当前的容器运行成功了。
参考资料
- Docker —— 从入门到实践
- Docker架构详解
- Docker官网
运行第一个Docker容器-Docker for Web Developers(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和端口,但是在一个指定端口上只可以绑定一个容器.支持的格式有 ...
- 进入Docker 容器 docker exec [CONTAINER ID] bin/bash报错问题
问题 (base) Eistert-2:xxxx-web eistert$ docker exec -it f365682ef502 /bin/bash OCI runtime exec failed ...
- Docker容器---Docker简介与原理
1. 概述 1.1 容器概念 docker是一个容器,所谓容器,就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等,kvm虚拟机,linux, ...
- 外部访问docker容器(docker run -p/-P 指令)
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P(大写) 或 -p (小写) 参数来指定端口映射. (1)当使用 -P 标记时,Docker 会随机映射一个 49000~4990 ...
- 一、docker容器使用以及搭建企业级web网站
一.docker容器 docker和k8s的区别? 区别:1.k8s是一种开放源码的容器集群管理系统,而Docker是一种开放源码的应用容器引擎:2.k8s是一套自动化部署工具,可以管理docker容 ...
- Docker容器运行后退出,怎么才能一直运行?
现象 启动docker容器 docker run –name [CONTAINER_NAME] [CONTAINER_ID] 查看容器运行状态 docker ps -a 发现刚刚启 ...
- 进入正在运行的Docker容器的4种方式
进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker attach进入Docker容器 Docker提供了a ...
- linux docker 容器运行后不退出的方法
现象 启动docker容器 docker run –name [CONTAINER_NAME] [CONTAINER_ID] 查看容器运行状态 docker ps -a 发现刚刚启动的mydo ...
- docker容器修改开机启动服务器,docker-修改容器挂载目录的3种方法小结
方式一:修改配置文件(需停止docker服务) 1.停止docker服务 systemctl stop docker.service(关键,修改之前必须停止docker服务) 2.vim /var/l ...
最新文章
- retinaface自定义增强
- 最全的时间类解析。 SimpleDateFormat + Date() 和 DateTimeFormatter + LocalDate()的区别与使用场景
- Visual Studio进行linux远程开发
- 工程师如何解决穿衣搭配烦恼?——滴搭平台与算法 1
- Pycharm导入anaconda环境
- 带你认识MindSpore量子机器学习库MindQuantum
- linux dns服务无效,Linux下搭建DNS服务器及踩坑
- .Net中的AOP系列之《单元测试切面》
- 【Codeforces Round #185 (Div. 2) C】The Closest Pair
- vivado软件安装教程
- 模糊控制 进化算法 PID参数整定
- android imageview 图片模糊,android – Imageview变得模糊
- 初识vbs脚本(简单的逗女孩的记事本炸弹及解除)
- //18. 定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),fn1()是虚函数,DerivedClass也有成员函数fn1()
- 前端面试被问到项目中的难点有哪些?
- 接口测试必知必会知识点
- 《黑客大曝光:移动应用安全揭秘及防护措施》一2.1 基础移动网络功能
- 服务器修改万兆网卡为千兆,从千兆到万兆 惠普服务器网卡横向导购 上
- 算法竞赛入门经典——训练指南
- 移动开发:Android数据连接浅析
热门文章
- 五、线程的概念和特点
- 三、单链表增删改查原理和代码实现
- AI 利用BP算法及Sigmoid函数,研究函数f(x)=2sinx-0.7的逼近问题-实验报告
- 【字节流处理】linux下uint8转float的注意事项
- Java并发学习三:银行转账的死锁问题解决及示例
- ivf技术_体外受精技术介绍 谁需要IVF技术帮助
- 李艳芳北京应用物理与计算机,太赫兹量子级联激光器有源区增益分析和设计-太赫兹科学与电子信息.PDF...
- c3074 无法使用带圆括号的_小学生常见易考标点符号使用方法及练习(含答案)...
- 2020年班级管理html,2020年七年级班主任工作计划
- 搭建Harbor 2.x仓库 - docker私仓搭建