-
1、docker的容器可理解为一个进程(可以将容器想象为一个虚拟机);
2、docker容器中除了Container层可写外,其他层都是只读的/3镜像的各层都是可读的,如果想对可读层进行修改操作,那么本层内容会传到可写层,然后再进行修改操作;
3、当我们的应用进行文件查找是会从最顶层可写层查找(因为可读层内容都传到可写层),如果可写层没有相应数据才会去可读层查找。
4、容器中Container层可以修改(即可写),但是在镜像中Container层是不可以修改的,这
查看全部 -
运行自己的镜像 :
docker run -d -p 本机端口号:容器端口号 镜像名称 -p 指定端口号
比如:docker run -d -p 8888:8080 镜像名字
安装mysql镜像:
docker pull hub.c.163.com/library/mysql:latest
运行mysql镜像:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql
查看全部 -
1、制作自己的镜像
1.1、Dockerfile:是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。简化了从头到尾的流程并极大的简化了部署工作。
1.2、docker build:用于使用Dock而file创建镜像。
1.3、Jpress:http://jpress.io/:开源的java web应用。
制作 java WEB应用:
1.编辑 DockerFile(dockerFile是docke镜像的创建脚本文件,告诉docker按照文件里的流程去创建镜像)
DockerFile文件编辑流程格式:
1)、from tomcat (from tomcat是指创建的镜像继承自自己 指定的tomcat)
2)、MAINTAINER [姓名][联系方式] (创建镜像人的信息,可不写)
3)、COPY [本地war包] [指定的tomcat/webapps/下]
例:COPY dome.war /usr/local/tomcat/webapps
4)、给镜像起一个名称 (可以在docker命令创建)
2. 构建镜像:docker build Dokerfile文件目录(docker build命令是执行这个file脚本文件的命令)
补:docker build -t REPOSITORY:TAG 给镜像指定一个名称和版本
docker 操作命令 --help 此命令是查询操作命令 帮助
如:docker build -t demo:latest . (这里点.表示是Dockerfile文件的目录,为当前目录)
一、自己创建Dockerfile,dockerfile中包括
1.基准镜像 from xxxxx镜像地址
2.作者MAINTAINER信息 XXX XXX.@163.COM
3.COPY Jpress.war /usr/local/tomcat/webapps
二、docker build -t jpress:latest给自定义镜像指定name和tag(docker build .当前目录下构建docker)
三、附jpress下载地址:http://jpress.io/
查看全部 -
docker 开放端口给外部网络访问
docker run -d -p 8080:80 hub.c.163.com/library/nginx
-p(小) 是开放指定的端口,与上面,开本机端口8080映射到nginx的80端口
docker run -d -P hub.c.163.com/library/nginx
-P(大) 开放所有的端口与主机建立映射
docker ps 可以查看进程,并看端口,连接
查看全部 -
*、docker使用了Linux的namespace技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Docker容器一般会分配一个独立的Network Namespace。
1、docker网络类型:
1.1、bridge模式(桥接):docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。
1.2、host模式:容器不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
1.3、none模式:Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。docker将不会和外界的任何网络进行通讯。
1.4、container模式:新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
2、docker端口映射
在使用Bridge模式的时候,会涉及到一个问题,Bridge所使用的网路需要一个独立的Namespace,这就需要一种技术使容器内的端口可以在主机上访问,这种技术就是端口映射。Docker可以指定你想把容器内的某个端口可以在容器所在主机上的某一个端口之间进行映射,当你在访问主机上的端口的时候其实就是访问容器内的端口
3、进行访问
3.1、docker启动 -p 的使用: docker run -d -p 主机端口:容器端口 容器的名称
比如:docker run -d -p 8080:80 hub.c.163.com/library/nginx
3.2、停止docker:docker stop 容器Id
3.3、docker启动 -P 的使用(所有的监听端口都会和主机建立一个映射): docker run -d -P 容器名称
docker run -d -p 8080:80 IMAGE,默认桥接模式小p端口映射 docker run -d -P IMAGE docker开放所有随机端口映射到容器上
查看全部 -
1、Nginx特性:
1.1. 持久运行的容器
1.2. 前台挂起&后台运行
1.3. 进入容器内部
2、Nginx可以选择前台运行也可以选择后台运行,前台运行的镜像可以使用“Ctrl+C”结束进程的,进程结束了镜像也就结束了,因此Nginx的运行方式最好是后台运行;
docker容器里面和Linux一样(可以将docker容器想象为一个Linux系统)
3、docker命令:
3.1、docker ps 查看本机正在运行的容器;
3.2、docker pull hub.c.163.com/library/nginx:latest 拉取nginx镜像
3.2、docker run --help 可以查看docker run 都有哪些参数;
3.3、docker run hub.c.163.com/library/nginx 在前台运行Nginx;
3.4、docker run -d hub.c.163.com/library/nginx 在后台运行Nginx并打印相应运行Id;
3.5、docker exec -it 容器Id bash 进入容器内部
查看全部 -
docker client 执行一条命令,然后根据命令内容发送相应的请求到 docker host,docker host 解析该请求,会首先查询本地镜像仓库是否有对应的资源,假如没有,则向远程镜像中心拉取镜像放回本地,接着在执行该镜像,初始化为一个容器。
docker执行流程:
(1)docker pull:首先客户端client向Docker daemon发送命令docker pull,告诉Docker daemon要拉取哪个镜像,Docker daemon会先在本机检查这个镜像是否存在,如果存在并且版本一致,它不会做任何操作;如果不存在,它会到Docker的镜像仓库中寻找,如果找到了,就会把仓库中的镜像拉取到本地。
(2)docker run:客户端将docker run命令发送到Docker deamon中,Docker deamon会先检查这个镜像是否在本地已经存在,如果不存在,它会到仓库中寻找,把镜像下载到本地,下载之后它会通过一定的方式把镜像运行起来,变成docker容器
查看全部 -
运行上节拉取到的hello-world:
1、运行命令:docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...] 命令中IMAGE镜像名字项为必填项
例如:运行hello-world命令:docker run hello-world
2、docker 的流程:
Client :本机的docker执行命令的客户端
DOCKER_HOST:本机docker服务
Registry:docker远程仓库
2.1. docker pull 流程:在本机Client发出docker pull执行命令到DOCKER_HOST本机docker服务的Docker daemon中,Docker daemon会先在本机中寻找是否有相应的镜像如果存在不进行任何操作,如果没有会从docker的远程仓库Registry中将相应的镜像拉取到本地服务;
2.2. docker run 流程:在本机Client发出docker run执行命令到DOCKER_HOST本机docker服务的Docker daemon中,Docker daemon会先在本机中寻找是否有相应的镜像如果不存在则会从docker的远程仓库Registry中将相应的镜像拉取到本地服务,然后通过一定方式将镜像运行起来变成docker的容器。
查看全部 -
名词解释:
REPOSTTORY : 镜像名字
TAG : 版本(lastest 最新版)
IMAGE ID : 64 位的字符串,可以唯一标识镜像,这里只显示16位,后面的被截掉了。
CREATED : 创建时间 (最后修改时间)
SIZE : 大小
解决疑问:
1、HelloWorld 为什么写成 hello-world
镜像的名字在docker IO的官网上可以查到的,只有有才能下
2、docker pull 就给了一个名字,每个地址怎么下载的呢?
如果没有指定的话,他就去docker的仓库 hub.docker.com 下载
查看全部 -
1、docker pull [OPTIONS] NAME [:TAG] :此命令的作用是从docker远程的仓库拉取镜像到本地 (命令中的NAME项是必填的代表我们需要拉取的镜像名称; [:TAG]是可选的,是代表镜像的版本; [OPTIONS]是代表拉取的镜像参数)
例如:拉取hello-world镜像命令:docker pull hello-world
2、docker images [OPTIONS] [REPOSITORY[:TAG]] :此命令是来查看我们本机都有哪些镜像,也可以验证我们的pull是否执行成功(命令中[OPTIONS]是镜像的参数; [REPOSITORY[:TAG]]是镜像的名称和版本)
查看全部 -
docker安装
1、docker是在Linux的Ubuntu系统开发的,所以在Ubuntu系统是docker的最理想运行系统。
2、Redhat&CentOS的docker安装步骤地址:
http://www.imooc.com/article/16448
3、安装最新docker的命令
curl -s https://get.docker.com | sh
查看全部 -
Docker安装
查看全部 -
docker的安装
如果非window,要先安装docker_tools
win10: www.docker.com/products/docker#/windows
win10之外:http://www.docker.com/products/docker-toolbox
安装缓存boot2docker.iso http://pan.baicu.com/s/1qYyc0ag
查看全部 -
1、构建镜像的目的:是为了在其他的服务器,其他的环境运行我们的程序。(为了在其他地方运行,我们就需要将构建的镜像传递到目的地才可以,仓库可以起到传输传递作用。)
2、传输过程:先将构建的镜像传到docker仓库中,再由目的地去docker仓库将我们的镜像拉过去,这样就完成了传输过程。
3、docker仓库的提供者:中央服务器
中央服务器地址:hub.docker.com(国际)、c.163.com(国内)
查看全部 -
1、docker的容器可理解为一个进程(可以将容器想象为一个虚拟机);
2、docker容器中除了Container层可写外,其他层都是只读的/3镜像的各层都是可读的,如果想对可读层进行修改操作,那么本层内容会传到可写层,然后再进行修改操作;
3、当我们的应用进行文件查找是会从最顶层可写层查找(因为可读层内容都传到可写层),如果可写层没有相应数据才会去可读层查找。
4、容器中Container层可以修改(即可写),但是在镜像中Container层是不可以修改的,这样也就保证了同一个镜像可以生成多个容器独立运行,而他们之间没有任何的干扰。
Docker容器的本质是一个进程。Docker镜像的每一层都是只读的,而容器作为最上层,是可读可写的。如果程序需要对镜像进行修改,那么Docker会把要修改的镜像文件拷贝到最上层的容器中,然后再进行修改。往后对该文件的访问会优先从容器中读取,寻找文件的顺序是从下往下。
查看全部
举报