特点:
1、开源
2、应用容器引擎
3、可以实现虚拟化
4、沙箱机制,相互之间不会有任何接口
说明:
docker通过创建容器,在容器中部署项目,可以实现非常快速的容器的创建。
可以实现非常快速的创建多个容器(理论上无限制)
通过容器化的技术,可以实现资源的共享,相互之间互不影响,各自完成自己的工作。是一种轻量级的部署容器。
docker是一个请求级的的应用部署程序,与虚拟机而言,不需要创建虚拟机的操作系统,并且通过docker引擎可以快速高效的实例化容器。
速度:Docker速度接近物理主机速度
资源:虚拟机运行时会产生大量的临时文件,占有用计算机的资源。
当docker容器停止时,会将生成的临时文件全部删除。
操作系统:虚拟机可以部署到任何操作系统中。
docker只能部署到linux7及以上版本。内核要求必须是3.10以上版本。
沙箱:安全机制(隔离,互不影响)
linux系统安装使用
1、linux查询本
2、重启网卡
linux命令
1、修改ip地址
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33 改为自己的网关
重启网卡:service network restart
查看是否有网:ping www.baidu.com
2、查询linux内核版本
uname -a
如:Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
模块介绍:
clients:表示docker服务的客户端
hosts:表示真实的物理主机
registers:docker的镜像仓库
docker的功能模块介绍:
容器的概念:真实的服务。其中可以包含任何软件(JDK/tomcat/CentOS-6.5等)
Image:镜像。docker官网提供了好多的软件的镜像服务。如果容器想创建,必须依赖于Image模板。容器是可以修改的(编辑)。镜像是只读的。
通过镜像可以生产无数的容器。
通过网络可以将docker镜像服务下载到本地
总结:
1、当docker需要创建容器,首先应该先获取镜像文件Image。
2、当本地没有Image镜像时,需要联网去官网中下载
3、当下载完成后,再次根据镜像文件生成具体的容器。
镜像网站介绍:
1、docker官网
2、阿里云镜像:https://dev.aliyun.com/search.html
3、灵雀云镜像:https://hub.alauda.cn/
docker的使用:
1、安装docker
获取镜像地址:
sudo yum install docker -ce
yum:源
2、启动docker
启动: service docker start
停止: service docker stop
重启: service docker restart
3、docker容器的命令
查询redis镜像:docker search redis
进入工作区:cd /etc/sysconfig/network-scripts/
4、docker获取redis镜像
获取redis:docker pull redis:3.2.8
1、查询镜像文件:docker images
2、加载镜像文件:docker load -i redis-3.2.8.tar
启动容器 docker run -d --name redis7000 -p 7000:6379 0db2a690b89e
进入容器
查询容器:docker ps
查询全部容器:docker ps -a
关闭容器:docker stop 0db2a690b89e(容器id)
开启容器:docker start 0db2a690b89e(容器id)
删除容器:docker rm 0db2a690b89e(容器id)
进入容器内部:docker exec -it 7ff5cb6eb98c(内部连接id,非容器id) bash
进入到redis:redis-cli -p 6379
导出镜像文件
docker save -o redis-3.2.8.tar redis:3.2.8 镜像id
-o:根据指定名称生成镜像,当镜像导入时名称与镜像名称一致。
redis通过暴露在外部的7000端口进行访问
docker命令
命令 | 用法 |
yum -y install docker | 下载最新版的docker |
service docker start | 启动Docker服务 |
service docker stop | 停止Docker服务 |
service docker restart | 重新启动Docker服务 |
docker version | 查看Docker的版本号 |
docker pull 镜像地址:版本 | 从镜像仓库中下载 |
docker save a2a69ca5184a > jt-centOS6.tar | 根据镜像id导出镜像 |
docker save -o redis-3.2.8.tar redis:3.2.8 | 根据镜像名称导出镜像 |
docker load -i docker-centos-6.5.tar | 指定jar包导入镜像文件 |
docker rmi a2a69ca5184a | 根据Id号删除镜像文件 |
docker rmi -f a2a69ca5184a | 根据容器id强制删除镜像文件 删除镜像前需要先关闭容器 |
docker images | 查询所有镜像文件 |
ocker inspect index.alauda.cn/tutum/centos:6.5 | 查看镜像文件细节信息 |
docker tag 旧镜像名称和端口 redis-ali:0.0.1 | 修改镜像的名称 |
docker build -t 镜像名称:版本号 | 根据dockerfile来创建镜像文件 |
docker run -d --name 容器名 镜像名:版本号 | 根据镜像名称启动容器 |
docker run -d --name 容器名(自定) 镜像id号 | 根据镜像id启动容器 |
docker run -d -p 虚拟机端口:镜像端口 --name 容器名 镜像名:版本号 | 启动容器,并指定暴露端口 |
docker ps | 查看活动的docker容器进程 |
Docker ps -a/-all | 查看全部的容器 |
docker exec -it 容器id bash | 进入指定的容器 |
docker stop 容器Id号 | 停止指定容器 |
docker start 容器Id号 | 启动创建好的容器 |
docker stop $(docker ps -q) & docker rm $(docker ps -aq) | 关闭和删除所有的容器 |
docker rm 容器Id | 删除指定的容器 |
制作镜像
要求:使用CentOS6.5版本 + jdk1.8 + tomcat7 + 项目 制作镜像
1、导入jdk1.8
2、创建dockerfile文件(文件名不能错)vim dockerfile
思路:
1、需要引入操作系统 CentOS6.5 FROM
2、添加jdk环境变量
a)JAVA_HOME EVN
b)PATH
c)CLASSPATH
文件模版:
#添加contos6.5文件FROM a2a69ca5184a#添加JDK1.8 centos+jdkADD jdk-8u51-linux-x64.tar.gz /usr/local/srcENV JAVA_HOME=/usr/local/src/jdk1.8.0_51ENV PATH=$JAVA_HOME/bin:$PATHENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#centOS6.5+JDK1.8+tomcat7ADD apache-tomcat-7.0.55.tar.gz /usr/local/srcENV CATALINA_HOME /usr/local/src/apache-tomcat-7.0.55ENV PATH=$PATH:$CATALINA_HOME/bin#添加ROOT.war包文件COPY ROOT.war $CATALINA_HOME/webapps/ROOT/ROOT.warWORKDIR $CATALINA_HOME/webapps/ROOTRUN jar xvf ROOT.warRUN rm ROOT.war#对外暴露的端口号EXPOSE 8080CMD ["/usr/local/src/apache-tomcat-7.0.55/bin/catalina.sh","run"]
3、生成镜像文件
命令:docker build -t 镜像名称:版本号 ./
docker build -t cent-jdk:0.0.1 ./
-t:按钮指定的文件名称生成
./:在当前文件夹下
测试:
根据生成的镜像文件测试镜像是否成功生成
启动容器:docker run -d --name cent-jdk 33842afa99a7
进入容器:docker exec -it 7ff5cb6eb98c(内部连接id,非容器id) bash
dockerfile命令
序号 | 关键字 | 说明 |
| FROM | 指定基础镜像的来源 |
2 | ADD | 添加镜像文件,会自动解压 |
3. | EVN | 添加环境变量 |
4. | MAINTAINER | 作者 |
5. | WORKDIR | 设置当前工作目录 cd |
6. | VOLUME | 设置数据卷,挂载主机目录 |
7. | EXPOSE | 指定对外暴漏的端口 |
8. | RUN | 执行命令 sh |
9. | CMD | 执行命令 exec,一个Dockerfile只能一个 |
10 | COPY | 复制文件 |
11. | ENTRYPOINT | docker run时参数可以覆盖,指定参数值 |