docker - ce
docker概念:Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序。
优点:
- 灵活:即使是复杂的应用程序也可封装。
- 轻量级:容器利用并共享主机内核。
- 便携式:您可以在本地构建,部署到云上并在任何地方运行。
- 可扩展性:您可以增加和自动分发容器副本。
- 可堆叠:您可以垂直堆叠服务并及时并及时堆叠服务。
三大组成
镜像(images) 容器(Containers) 仓库(registry)
一,镜像
image :docker镜像是一个特殊的文件系统,除了提供容器运行所需要的程序,库,资源等,还包含了一些运行时准备的一些参数(匿名卷,环境变量,用户等),镜像不包含任何动态数据,其内容在构建之后也不会被改变
分层存储:简单来说,这里的image不是一个真正ISO那样的文件,这里只是一个虚拟的概念,体现方式不是文件组成,是由一组文件系统组成,或者说,多层系统联合。
二,容器
containers:容器是镜像运行时的,实质就是进程,但是与宿主机进程不同,它有自己的网络配置,有自己独立的命名空间,容器存储层的周期和容器一样,容器消亡时,容器存储
三,仓岙库(docker regsistry)
镜像构建完成后,如果需要其他服务使用这个镜像,就需要一个容器存储,来分发镜像,这个时候就需要库了,在库里,一个仓库包含一个软件不同版本的镜像,每个仓库可以包含多个标签,标签就常用于对应软件的各个版本
docker简单的操作
下载:docker-ce
搭建源,再用YUM直接安装即可
阿里下载源
# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
国内下载源
# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
国内下载源
# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
命令:
镜像基本命令:
docker search -s(好评高的) 100 centos.....[镜像名]
docker pull 镜像名(nginx)
docker images
docker inspect 镜像ID
docker tar 原镜像名:标签 新镜像名:新标签
docker rmi 镜像名:标签
docker save -o 指定下载到本地目录/文件名 镜像名:标签
docker load <绝对路径的包
镜像基本命令:
docker search -s(好评高的) 100 centos.....[镜像名]
docker pull 镜像名(nginx)
docker images
docker inspect 镜像ID
docker tar 原镜像名:标签 新镜像名:新标签
docker rmi 镜像名:标签
docker save -o 指定下载到本地目录/文件名 镜像名:标签
docker load <绝对路径的包
容器:
docker create -itd 镜像名:标签 /bin/bash
docker ps -a
docker run -d 镜像名:标签
docker logs
docker commit ID 镜像名:标签 #提交容器
构建镜像:
docker build -f file文件 -t 镜像名
dockerfile文件
格式:
FROM centos:latest
MAINTAINER ming
RUN <命令>
EXPOSE <端口> #指定端口映射
ENV <key> <value>
ENV JAVA_HOME /usr/local/jdkxxxxx/ #环境变量
ADD <源路径> <目标路径> #拷贝文件
COPY <源路径> <目标路径>
VOLUME <容器内路径> #定义匿名数据卷,会自动挂载到此卷
WORKDIR <指定工作目录>
CMD <命令> #不同于run,一遍用完于文件最后指定运行文件,
CMD [<文件命令>,<参数>.......]
格式:
FROM centos:latest
MAINTAINER ming
RUN <命令>
EXPOSE <端口> #指定端口映射
ENV <key> <value>
ENV JAVA_HOME /usr/local/jdkxxxxx/ #环境变量
ADD <源路径> <目标路径> #拷贝文件
COPY <源路径> <目标路径>
VOLUME <容器内路径> #定义匿名数据卷,会自动挂载到此卷
WORKDIR <指定工作目录>
CMD <命令> #不同于run,一遍用完于文件最后指定运行文件,
CMD [<文件命令>,<参数>.......]