关键词:
-
基本概念
Docker: 开源的容器虚拟化平台,虚拟机能做的Docker都能做,而且速度更快。
Docker的核心思想有三点:
- 集装箱,将一个个程序(应用)看作集装箱,在网络间进行搬运,Docker中的集装箱也就是镜像
- 标准化,将程序所需的环境进行标准化
- 隔离,集装箱直接互相隔离
在对Docker有一个大概的认识后再来看Docker的内部:
Docker 镜像 - Docker images
Docker 仓库 - Docker registeries
Docker 容器 - Docker containers
镜像就是一系列的文件,每一层的镜像都是只读的,仓库是用来保存镜像的,容器的本质是进程,镜像可以理解为容器的文件系统,一个Docker容包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。
-
基本操作
安装过程见官网,安装完成后键入命令,docker version,可获取如下内容:
安装完成后,对docker的镜像进行下载,也就是docker pull image 命令,最后的image是由docker官网提供的镜像名称,因为国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,我在ubuntu16系统下,镜像无法从官网直接pull ,可以通过daocloud.io获得自己的加速器。具体操作如下:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://990a497a.m.daocloud.io
配置Docker Hub Mirror
sudo echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"" >> /etc/default/docker service docker restart
将xxx替换为在 DaoCloud 上注册后,专属生成的Mirror地址链接名。 该脚本可以将 --registry-mirror 加入到Docker配置文件 /etc/defaults/docker中。
Docker Hub Mirror使用不需要任何附件操作,就像这样下载官方Ubuntu镜像
docker pull ubuntu
最终问题解决。
然后就可以开始练习docker的一些基本操作了,一些基本的操作可以参考这篇博客http://blog.csdn.net/zjin_hua/article/details/52041757。
自己制作完成的镜像可以上传至私有仓库,在这里我使用了阿里云的私有仓库,按照阿里云的提示步骤将本地镜像上传至私有仓库。
镜像上传成功后结果如下:
-
web应用容器化
对docker仓库,镜像,容器等有了基础的认识后,开始在docker中运行自己的web项目,以下实例中的web项目来自于我自己开发的基于SSH框架的java web项目。
- 首先安装tomcat镜像
- 编辑Dockerfile文件,具体内容如下
from tomcat #第一条指令必须是FROM,其后可以是各种镜像的操作指令
MAINTAINER 所有者名字 邮箱 #指定镜像所有者
ADD classnet.war /usr/local/tomcat/webapps/ #将web项目添加至tomcat工作目录下,classnet.war是项目的名称,需要和dockerfile在同一个目录下
CMD ["catalina.sh", "run"] #在容器启动时启动tomcat服务器
- 输入指令 docker build -t name:tag . #为web的镜像命名,指定版本号,并在最后说明dockerfile的存放位置
- 在docker中安装mysql的镜像
- 分别将mysql和web的镜像启动为容器,并指定端口号,另外需要在mysql启动时,通过-e指令配置环境变量,具体环境变量的值可以查看镜像的官方说明,指定数据库的连接密码和数据库名称,与web项目中保持一致。
- docker ps命令查看容器是否正常启动
- 输入localhost:端口号/classnet/index.jsp 正常访问网站 #另在web项目中须将mysql的连接地址改为虚拟机的ip地址,若使用localhost则不能正常访问
详细操作可参考这篇博文https://yq.aliyun.com/articles/6894,其中涉及到maven的安装,在配置maven项目时出现 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?经查证后发现是jdk版本的问题Linux系统中自带jdk,版本为open版,更新为oracle版后解决问题。可参考https://zhidao.baidu.com/question/332067219210122805.html替换jdk版本。
另外补充关于学习时常和资料的问题,了解官网内容加基础概念学习用了两天时间,在docker安装时,因为个人没有linux的基础,又另外学习linux相关内容,花费大约三天时间,在之后练习镜像与容器相关操作以及web容器化用了三天时间。参考书籍有docker从入门到实践
docker~学习笔记索引
使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索!docker~学习笔记索引docker~linux下的部署和基本命令(2017-04-0722:47)docker~docker-machine的介绍(2017-04-1212:02)docker~使用阿里加速器安c... 查看详情
docker学习笔记
Docker学习笔记什么是Docker? docker是一个容器 跨平台windowsmaclinuxDocker思想 集装箱环境稳定 1.运输方式 标准化 2.存储方式 3.API接口 隔离 lxc轻量级软件隔机制Docker解决了多端运行都没问题 不同环境配置放到集装箱-》鲸鱼-》超... 查看详情
docker学习笔记
一、Docker简介Docker两个主要部件:Docker:开源的容器虚拟化平台DockerHub:用于分享、管理Docker容器的DockerSaaS平台– DockerHubDocker使用客户端-服务器(C/S)架构模式。Docker客户端会与Docker守护进程进行通信。Docker守护进程会处理... 查看详情
docker学习笔记
Docker学习笔记Docker能处理的事情包括:隔离应用依赖创建应用镜像并进行复制创建容易分发的即启即用的应用允许实例简单、快速的扩展测试应用并随后销毁它们Docker背后的想法是创建软件程序可移植的轻量容器,让其可以在任... 查看详情
docker学习笔记
Docker命令:dockerrunhello-world:用于验证docker是否能够运用了。docker--version:查看版本。限制docker的选项:http://blog.csdn.net/candcplusplus/article/details/53728507dockerrun-m,--memory:dockerrun--memory-swap:dockerrun- 查看详情
docker学习笔记
win10机器: docker下载:https://www.docker.com/products/docker#/windowswin10之外的win机器: docker下载: https://www.docker.com/products/docker-toolbox boot2docker.iso下载地址:https://pan.baidu.com/s/1qY 查看详情
docker学习笔记
一、Docker简介Docker两个主要部件:Docker:开源的容器虚拟化平台DockerHub:用于分享、管理Docker容器的DockerSaaS平台--DockerHubDocker使用客户端-服务器(C/S)架构模式。Docker客户端会与Docker守护进程进行通信。Docker守护进程会处理复杂繁重... 查看详情
docker学习笔记docker仓库数据卷数据卷容器,网络基础实操。高级网络配置学习
Docker学习笔记【4】高级网络配置实操,实战案例实验===========================================================================Docker学习笔记【2】Docker仓库实操,创建私有仓库,实操数据卷、数据卷容器,记录开始========================================... 查看详情
docker学习笔记docker相关概念,基本操作
计划:Docker学习笔记【2】Docker基础操作实操记录,Docker仓库、数据卷,网络基础学习---40注:所有操作在root下执行--1--概念:1、Docker镜像:镜像就是一个只读的模板,用于创建docker容器。Docker提供了简单的机制创建或者更新现... 查看详情
docker学习笔记
docker CE 和 EE:CE社区版,EE企业版dockerEE强化了安全,安全,安全 集成了DockerDataCenter用于容器管理,使其更加便利 查看详情
docker学习笔记1--安装和配置
技术资料docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔记:http://www.open-open.com/lib/view/open1423703640748.html 深入浅出docker:http://www.infoq 查看详情
docker学习笔记6
VIIIdocker目录虚拟化:41dockerobjects:43dockerimages:46dockerregistry:48docker:介绍;镜像管理;容器管理;网络访问;数据管理;镜像构建;私有仓库;核心技术;... 查看详情
docker学习笔记什么是docker
Docker学习笔记(一)什么是Docker Docker:容器技术是虚拟化技术的一种,是操作系统的虚拟化。 传统硬件虚拟化:虚拟硬件,事先分配资源,在虚拟的硬件上安装操作系统,虚拟机启动起来以后资源就会被完全占用。操作... 查看详情
docker学习笔记
基本概念 Docker:开源的容器虚拟化平台,虚拟机能做的Docker都能做,而且速度更快。 Docker的核心思想有三点:集装箱,将一个个程序(应用)看作集装箱,在网络间进行搬运,Docker中的集装箱也就是镜像标准化... 查看详情
docker学习笔记--docker常用命令
原文地址:http://blog.csdn.net/we_shell/article/details/383681371.查看docker信息(version、info)[plain] viewplaincopy # 查看docker版本 $docker version #&nb 查看详情
docker学习笔记
1.查询dockers某个容器的ip地址。[[email protected]~]#dockerinspect--format=‘{{.NetworkSettings.IPAddress}}‘3ea2b8c52e72172.17.0.7 查询容器mac地址[[email protected]~]#dockerinspect--f 查看详情
docker学习记录笔记
Docker一些简单的命令列表dockerbuild-tfriendlyhello.#Createimageusingthisdirectory‘sDockerfiledockerrun-p4000:80friendlyhello#Run"friendlyname"mappingport4000to80dockerrun-d-p4000:80friendlyhello#Samething,buti 查看详情
docker学习笔记docker仓库
访问仓库,仓库是集中从存放镜像的地方。类似Maven。DockerHub 目前由Docker官方维护的一个公共仓库,其中包括15000的镜像。 注册 在 https://hub.docker.com免费注册一个Docker账号。 登录 通过dockerlogin命令交互式... 查看详情