docker入门安装与简单使用
2017-02-17 18:12
716 查看
快速了解
(一) Docker 是什么
官方给出的定义是:Docker是一个集开发,打包,运行应用于一体的开放式平台。Docker可以用来快速交付应用。使用Docker,你可以将应用程序从你的基础设施中分离出来,并将基础设施当做一个管理平台。Docker可以加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期。Docker通过结合内核容器化特点和工作流,并使之工具化来实现这一切,帮助管理和发布你的应用。(二) Docker平台
Docker的生态环境正逐渐壮大起来,Docker的核心,提供了一种运行大部分应用程序的方式,并安全地隔离在容器中。隔离性和安全性允许你在主机上同时运行多个容器。容器天生的轻量级特性,使其在运行时无需加载额外的虚拟机管理器,这意味着你可以从硬件中获得更多东西。容器周边是一个工具化的平台,可以从以下几个方面帮助你:
将你的应用(或支持的组件)置于Docker容器中
分发和打包这些容器,以便将来用于开发和测试
将这些应用部署至生产环境,无论是数据中心还是公有云环境。
(三) Docker 引擎
Docker Engine是一个C/S架构的应用程序,主要有以下组件:服务端守护进程
REST API接口,程序用来与守护进程进行交互
CLI(command line interface)命令行接口客户端
Docker Engine Components
注:Docker 引擎 组成(图片来源于docs.docker.com)
CLI使用脚本或直接使用CLI命令,利用Docker的REST API来控制Docker守护进程或与之进行交互。其他许多Docker应用程序使用底层API和CLI。
守护进程创建并管理Docker对象,Docker对象包括镜像,容器,网络,数据卷等等。
(四) Docker可以干什么
快速交付应用便捷的部署和调整
高密集度,高负载
(五) Docker 重要概念
镜像(images)
Docker镜像是一个只读的模板。包含了容器运行时所需要的文件系统和一些参数。镜像是无状态的,也不会改变。镜像是用来创建容器的。你可以使用docker pull命令获取一个别人已创建好的镜像,或者使用dockerbuild来构建一个自己的镜像。容器(containers)
Docker容器就像是一个文件夹,容器中包含了应用运行所需的一切。每个容器都是一个隔离的和安全的应用平台。容器是镜像的一个实例,它是有状态的,而且随时会改变,容器一般是短暂的。启动一个容器的过程如下:
检查指定的镜像是否存在
如果不存在,则去Docker Hub下载
加载镜像并运行
Docker注册中心(Docker Registries):
Docker注册中心是托管Docker镜像的地方,有公共的和私有的,你可以往这些注册中心上传或下载镜像。Docker Hub是Docker官方的公共镜像仓库,这里汇集了非常多的常用镜像,我们可以直接从这里下载使用,也可以自己制作自己的镜像,并分享给别人。
docker ubuntu14.04安装
编者按:docker的发展非常迅速,apt源的更新往往比较滞后。所以docker官网推荐的安装方式都是下载docker安装脚本安装。 依赖关系: Ubuntu 14.04版本无需安装额外的依赖包,可以直接安装。 安装步骤: 使用管理员帐号登录ubuntu 14.04系统,保证该管理有root权限,或者可以执行sudo命令。 检查curl包有没有安装。 $ which curl 如果curl没有安装的话,更新apt源之后,安装curl包。 $ sudo apt-get update $ sudo apt-get install curl 获得最新的docker安装包。 $ curl -sSL https://get.docker.com/ | sh shell会提示你输入sudo的密码,然后开始执行安装过程。 确认Docker是否安装成功。 $ sudo docker run hello-world 这个命令会下载一个测试用的镜像并启动一个容器运行它。 这时候本底没有镜像 docker会去Docker注册中心下载 再 执行 docker run hello-world 运行镜像 注意:docker要调用底层库需要 sudo权限 可以执行 sudo -i后 就切换到root了 docker run hello-world 接着简单描述了一下产生该条信息所经历的一系列步骤: 1 Docker客户端连接到守护进程 2 Docker守护进程从Docker Hub拉取了hello-world镜像 3 Docker守护进程从该镜像创建了一个容器,来执行了命令并输出了我们当前看的这条消息 4 Docker守护进程将容器中的标准输出转发到你的终端。 另一种校验方式 sudo service docker status 运行结果: $ sudo service docker status docker start/running, process 10692
国情需要
1、配置Daocloud,去官网申请一个账户2、配置 Docker 加速器 将 –registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中
3、重启docker sudo service docker restart
docker简单几个命令
启动docker服务 $ sudo service docker start 或者 $ sudo systemctl start docker 设置开机启动 $ sudo systemctl enable docker 添加一个docker组(避免每次执行docker命令都带sudo) 注:1.12版本的docker 安装完后已经创建好了docker分组,检查是否已存在:cat /etc/group |grep docker,如果你的没有,则手动添加一下: $ sudo groupadd docker 将当前用户加入docker组 $ sudo usermod -aG docker $USER 编辑/etc/default/grub,修改GRUB_CMDLINE_LINUX的值如下: GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" 保存并退出。重启系统 检查版本 $ docker -v Docker version 1.12.0, build 8eab29e 升级 后续如果有新的版本更新,直接使用apt-get即可: $ sudo apt-get upgrade docker-engine 卸载 在卸载或删除Docker数据时,一定要检查确保需要的数据已做好备份! 卸载Docker: $ sudo apt-get purge docker-engine $ sudo apt-get autoremove --purge docker-engine 上述命令只是卸载了docker程序,并不会删除数据(镜像,容器,数据卷或你在主机上的配置文件等),如果要将这些也全部删除,执行: $ sudo rm -rf /var/lib/docker 然后手动删除你创建的配置文件即可。 注: 如果你有创建docker组,并且该组也不再需要,则可以将该组删除: $ sudo groupdel docker 可以看一下目前所有的容器: docker ps -a 查看正在运行的容器: docker ps 查看最后创建的一个容器。 docker ps -l 查看本地镜像 docker images 在线查找镜像 如果你不知道都有哪些可用的镜像,在线查找一下 直接使用docker search + [你想查找的镜像关键字],如: $ docker search tomcat 查看 tomcat的镜像 拉取镜像 使用docker pull [镜像名称[:版本]]可以拉取一个镜像: 注: 完整的镜像名称由[repository]/name:[tag]构成,[repository]为仓库,如果省略,则默认为library,即从Docker Hub拉取;如果省略tag,则默认拉取latest版本,name为镜像名称,不能省略。 pull tomcat:7 创建容器 docker run -d --name tomcat001 -p 8081:8080 tomcat:8 其中,-d 指定容器在后台运行;–name用于指定容器的名称;-p 8081:8080 用于将容器内的8080端口映射到主机的8081端口,你也可以换成其他本机端口.如果需要,你可以创建多个容器使用,需要注意的是,本机映射的端口不能重复,name也不能重复。 容器日志 docker logs -f tomcat001 停止容器 docker stop tomcat001 启动容器 docker start tomcat001 docker run 该命令包括了 docker create 和 docker start 删除容器 删除一个容器前,需要先停止容器,否则,需要使用 -f选项强制删除(不推荐)。 另外,如果容器包含数据卷的话,可以使用-v选项连同关联的数据卷一块删除,删除容器时,默认不删除数据卷,因为数据卷通常会包含我们的数据。 docker rm tomcat001 删除镜像 docker rmi tomcat:8 //删除一个镜像前,需要先停止使所有用它的容器,否则会报错,或者使用 -f选项强制删除。
简单实践-跑一个tomcat
1、拉取tomcat的镜像docker pull tomcat:8
2、查看一下镜像是否拉取成功
docker images
3、创建并且启动容器
docker run -d --name t8 -p 8081:8080 tomcat:8 //最简单的使用数据卷的方式就是在创建一个容器时 增加-v选项
4、查看容器日志
docker logs t8
5、浏览器访问tomcat8
http://宿主机ip:映射端口/
6、关闭容器
docker stop t8
7、启动容器
docker start t8
8、查看启动了的容器
docker ps
9、创建目录
//创建目录 sudo mkdir -p /opt/data/myapp/ROOT sudo chown -R $USER:root /opt/data/myapp // $USER 当前登录用户名 //在/opt/data/myapp/ROOT下创建一个WEB-INF目录 mkdir /opt/data/myapp/ROOT/WEB-INF
10、新建一个web.xml
//新建一个web.xml vi /opt/data/myapp/ROOT/WEB-INF/web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> </web-app>
11、新建一个jsp页面
新建一个jsp页面 vi /opt/data/myapp/ROOT/index.jsp <!DOCTYPE html> <html lang="en"> </body> Hello, this is my first docker app! </body> </html>
12、将我们的应用挂载到容器中 docker run -d --name myapp -v /opt/data/myapp:/usr/local/tomcat/webapps -p 8888:8080 tomcat:8
13浏览器访问 http://宿主机ip:8888/
打造自己的开发环境镜像
1 、新建一个文件夹,并命名为baseosmkdir -p /opt/data/baseos
该目录作为我们构建镜像的上下文,构建该镜像的所有内容都会放到该目录下。
2、创建Dockerfile文件
touch Dockerfile //该命令会创建一个空白文本文档
3、编辑Dockerfile
vim Dockerfile 写入 # Base os image FROM ubuntu:16.04 MAINTAINER your_name <your_email_address> LABEL Description="This image is the base os images." Version="1.0" # reconfig timezone RUN echo "Asia/Beijing" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata 说明 以#开头的行为注释; 第二行FROM关键字告诉docker我们的新镜像基于哪个基础镜像; 第三行MAINTAINER关键字是维护者信息,可以修改为你的名字和邮箱地址; 第四行LABEL Description是对镜像的一个简单说明,Version指明该镜像的版本号,方便维护; 第六行RUN关键字用于执行一条命令。这里主要是修改系统的时区从标准UTC改为亚洲/Beijing。
4、下载jdk–》移动到Dockerfile所在目录
5、修改Dockerfile文件
# Base os image FROM ubuntu:16.04 MAINTAINER your_name <your_email_address> LABEL Description="This image is the base os images." Version="1.0" # reconfig timezone RUN echo "Asia/Beijing" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata ADD jdk-7u80-linux-x64.tar.gz /usr/lib/jvm RUN update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_80/bin/java 300 && update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_80/bin/javac 300 ENV JAVA_HOME /usr/lib/jvm/jre
6构建镜像、执行docker build -t cjn/baseos:1.0 .命令构建,注意不要忘了最后的那个点.
说明: -t, –tag=”” Repository name (and optionally a tag) to be applied to the resulting image in case of success
7、测试结果
相关文章推荐
- Docker安装和简单使用入门教程
- Docker安装和简单使用入门
- docker安装与简单使用
- 《读书报告 -- Elasticsearch入门 》-- 安装以及简单使用(1)
- 安装docker以及一些简单的使用
- Windows10下的docker安装与入门 (一)使用docker toolbox安装docker
- Docker在Windows系统下的安装及简单使用介绍
- nodejs安装和使用简单入门
- Docker此例简单介绍docker的安装、使用以及打包
- Selenium2(webdriver)入门之TestNG的安装与简单使用
- docker学习-简单安装及使用
- 【Linux运维入门】Linux环境安装配置MongoDb及简单使用
- Docker在Windows系统下的安装及简单使用介绍
- smarty详解一:简介、安装、快速入门、变量的简单使用
- Junit入门学习(1)------- 安装和简单使用
- Docker入门--简单使用--RHEL7.2
- centos 6.6 x86_64 安装docker和简单使用
- nginx 入门、安装与简单使用