一、概述

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 官网:http://www.docker.com

Github Docker 源码:https://github.com/docker/docker

参看地址:http://www.runoob.com/docker/docker-tutorial.html

二、docker架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像

  

  具体

  

Docker 镜像(Images)

Docker 镜像是用于创建 Docker 容器的模板。

Docker 容器(Container)

容器是独立运行的一个或一组应用。

Docker 客户端(Client)

Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。

Docker 主机(Host)

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker 仓库(Registry)

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

三、window下安装

  dockerToolbox是使用VirtualBox虚拟机软件来构建一个叫default的linux系统,从来来使用docker的。

  docker for windows是使用Hyper-V来构建linux系统,Hyper-V的性能比VirtualBox高,所以windows建议这么安装。 但是docker for windows只能在windows10有Hyper-V的版本上安装,且windows8可能没有Hyper-V,同理所有版本的windows7都不支持Hyper-V,即windows7只能安装dockerToolbox。

   windows10可以安装dockerToolbox或docker for windows(推荐这种),两者的区别目测就是模拟linux的虚拟机不同(因为docker只能安装在linux上,所以windows系统需要先虚拟一个linux系统),windows7的docker使用的比较少,不是说会挂,因为没人会在生产环境使用windows7或者10来部署docker,都是linux系统或者windowsServer来部署。

  如果您的系统不符合运行Docker for Windows的要求,则可以安装Docker Toolbox,Dockbox Toolbox使用Oracle Virtual Box而不是Hyper-V。

3.1、docker for windows安装

https://docs.docker.com/docker-for-windows/

Docker for Windows安装包括:安装提供Docker Engine,Docker CLI客户端,Docker Compose,Docker Machine和Kitematic。

1、开启因特尔虚拟化技术  

  电脑硬件【thinkpad 按键F1→BIOS→Security→visualization→inter…… enabled即可】

  win10系统开启Hyper-V,程序→启用或关闭Windows功能→选中Hyper-V

2、下载

  官方地址:地址 ,三方地址:地址   

3、安装

  下载好安装包后,安装即可.

  1、配置镜像:http://hub-mirror.c.163.com

    

  2、配置下本地镜像地址,setting,advanced中

四、测试

查看docker版本:docker version
帮助:docker --help
概要信息:docker info
镜像查看:docker images
容器查看,即进程查看,docker ps -a

5.1、hello world

docker pull hello-world
docker run hello-world

此时会下载,运行docker,成功后会显示 Hello from Docker! 等信息

docker run 镜像名:创建一个新的容器并运行一个命令
docker images:镜像查看:
docker ps -a:容器查看,即进程查看,
docker start 容器ID:启动一个或多个已经被停止的容器
docker stop 容器ID :停止一个运行中的容器
docker restart 容器ID:重启容器

五、基本docker命令

查看npm版本:npm -v
查看docker版本:docker version
启动:systemctl start docker.service
开机启动:systemctl enable docker.service
帮助:docker --help
概要信息:docker info
镜像查看:docker images
容器查看,即进程查看,docker ps -a

5、测试安装nginx

()下载镜像,docker pull nginx
()启动容器,docker run -d -p : nginx
  把容器内的nginx的80端口,映射到当前服务器的8080端口,当前服务器的ip是192.168.1.,浏览器输入http://192.168.1.120:8080/,就可以看到nginx已启动,
()再启动多一个容器,docker run -d -p : nginx
  浏览器输入http://192.168.1.120:8081/,就可以看到另外一个nginx已启动 也可以通过curl 127.0.0.1:8081 来测试是否打开相应端口
()到这里就能体现出Docker部署应用和传统部署应用的区别了,传统部署的话,需要人工拷贝多一份nginx,再配置端口,而Docker部署的话,在已制作好的镜像基础上,一条命令就可以部署一个新的应用

6、删除测试的nginx

(1)docker ps -a
可以显示容器id
停止容器
(2)docker stop 8dc6a2b6f903
删除容器
(3)docker rm 8dc6a2b6f903

7、指定容器nginx的参数

docker run --name nginx- -d -p : -v /home/docker/nginx/html:/usr/share/nginx/html nginx

-p 参数是把 宿主的8081端口映射到容器的80端口 
这里要注意-v是数据卷,可以主机和容器之间共享/home/Docker/nginx/html这个目录,在容器里面就是/usr/share/nginx/html。其实这就是我们的代码目录,调试代码就是靠共享目录实现的,很方便!

可以使用curl 127.0.0.1:8081查看,会出现403 下面介绍

8、修改容器里面的配置文件

#进入容器
docker exec -it nginx- bash
#安装工具
apt-get update
apt-get install vim
#查看和修改nginx的配置信息
vim /etc/nginx/conf.d/default.conf

修复网页访问403错误

由于在容器里面 nginx配置的web根目录是 /usr/share/nginx/html ,对应到系统的目录是/home/docker/nginx/html 。 会有权限的问题。
这个实现需要关闭SELinux重新发布一次
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
然后重启
删除原来的容器,重新发布一下容器。
访问
退出容器:exit

参看地址

http://blog.csdn.net/remote_roamer/article/details/51916893

9、docker基础命令

查看
docker ps -a
)删除一个容器
docker rm <containerID>
)强制删除一个容器
docker rm -f <containerID>
)强制删除全部容器
docker rm -f $(docker ps -aq)
)删除一个镜像:
docker rmi <imageID>
强制删除一个镜像:
docker rmi -f <imageID>
)强制删除全部镜像
docker rmi -f $(docker images -q)
查看ip
docker inspect 容器Id 或 docker inspect 容器Id |grep IPAddress

全部的操作命令

.停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q) .查看当前有些什么images
docker images .删除images,通过image的id来指定删除谁
docker rmi <image id> 想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 要删除全部image的话
docker rmi $(docker images -q)

001-docker概述、架构、window安装、基本测试的更多相关文章

  1. 【docker 入门 - 01】- Docker 在 Centos7 上安装与测试

    一.学习文档 官网网站: https://www.docker.com 中文网站:http://www.docker-cn.com 官方安装文档:https://docs.docker.com/ins ...

  2. 1、Docker概述与安装

    1.Docker概述 原文地址:https://docs.docker-cn.com/engine/docker-overview/#docker-engine Docker是一个开发,集装,运行应用 ...

  3. Window下memcached安装与测试步骤

    如何在Window下memcached安装与测试步骤 工具/原料 电脑 memcached 软件 方法/步骤 软件包下载 下载Memercached For Windows:http://downlo ...

  4. Docker的安装和测试

    1,Docker安装 Docker是啥,以及其与虚拟机的对比,就不介绍了,网上有很多资源可以学习和了解. 本篇文章重点介绍Docker的安装和测试使用. Docker的安装,分为离线安装和在线安装两种 ...

  5. 『开发技术』Docker开发教程(一)安装与测试(Windows 家庭版)

    0.前言 针对其他系统和版本,Docker都很容易安装,可以参考官方教程:https://docs.docker.com/docker-hub/ 由于Windows10家庭版无法安装docker,因此 ...

  6. Docker系列(一)Docker概述,核心概念讲解,安装部署

    部分内容参考链接: Docker实战总结(非常全面,建议收藏) 一. Docker概述 Docker是一个开源的应用容器引擎(基于Go语言开发),让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...

  7. 老李推荐:第1章3节《MonkeyRunner源码剖析》概述:架构

    老李推荐:第1章3节<MonkeyRunner源码剖析>概述:架构   原理架构 MonkeyRunner使用起来非常的简单,只需要导入以下几个类基本上就能满足测试脚本编写的需求,比如: ...

  8. 【Docker】Docker概述

    [Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...

  9. Docker教程:docker的概念及安装

    http://blog.csdn.net/pipisorry/article/details/50754385 Why docker 对于运维来说,Docker提供了一种可移植的标准化部署过程,使得规 ...

  10. hadoop2-HBase的安装和测试

    在安装和测试HBase之前,我们有必要先了解一下HBase是什么 我们可以通过下面的资料对其有一定的了解: HBase 官方文档中文版 HBase 深入浅出 我想把我知道的分享给大家,方便大家交流. ...

随机推荐

  1. 0053 用注解方式配置Spring MVC

    按照0052中的办法,如果一个站点设计有1000个请求,那就得写1000个controller,还得配置1000个<bean id="helloController" cla ...

  2. RandomUser 网站介绍

    RandomUser 网站介绍 tools api 介绍 使用 结果 API 错误 请求多个用户 指定性别 密码 种子 格式 使用早期版本 国家 页码 包含/不包含字段 杂项 结束语 介绍 在 201 ...

  3. spring quartz定时任务 配置

    cronExpression表达式: 字段 允许值 允许的特殊字符秒 0-59 , - * /分 0-59 , - * /小时 0-23 , - * /日期 1-31 , - * ? / L W C月 ...

  4. [转]Mac系统安装软件提示软件已损坏的解决办法

    很多朋友下载本站提供的Mac软件资源,安装提示“xxx软件已损坏,打不开,您应该将它移到废纸篓”的提示,其实并不是软件本身有问题,而是Mac系统的一个安全机制问题,按照如下方法操作,即可打开并安装本站 ...

  5. 【BZOJ】3391: [Usaco2004 Dec]Tree Cutting网络破坏(dfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3391 显然判断每个点只需要判断子树是否小于等于n/2即可 那么我们虚拟一个根,然后计算每个子树的si ...

  6. 化学绘图软件ChemDraw真的什么都能干!

    今天要介绍的就是一款无所不能的化学绘图软件——ChemDraw,绘制平面化学结构.生成立体化学模型.查询化学信息.编写化学脚本.计算化学数据等等,堪称化学界的必备神器. 化学软件ChemDraw免费获 ...

  7. 富文本编辑期Quill

    官方网站http://quilljs.com/ 使用方法 <!-- Create the toolbar container --> <div id="toolbar&qu ...

  8. Oracle11g Active Data Guard搭建、管理

    说明:參考网络众多人的笔记及思路,加上自己亲身实践之后的整理笔记.仅供參考. Data Guard与RAC不同的是.在普通情况下.Standby仅仅有一个节点处于活动状态,全部的应用都连接到主serv ...

  9. shell学习之路(整理ing)

    学习 shell脚本之前的基础知识 http://www.92csz.com/study/linux/12.htm SHELL 脚本 http://www.92csz.com/study/linux/ ...

  10. 【APIO2014】Palindromes

    #103. [APIO2014]Palindromes 统计 描述 提交 自定义测试 给你一个由小写拉丁字母组成的字符串 ss.我们定义 ss 的一个子串的存在值为这个子串在 ss 中出现的次数乘以这 ...