什么是docker
Docker是一个容器化平台,它将应用程序及其所有依赖项以容器的形式打包在一起,以确保应用程序在任何环境(无论是开发环境、测试环境还是生产环境)中无缝运行。 Docker容器,将一个软件包在一个完整的文件系统中,其中包含运行所需的一切:代码、运行时、系统工具、系统库等任何可以安装在服务器上的东西。 它都将始终运行相同的程序,无论软件的环境如何。
|
为什么用docker
增加部署频率 降低新版本的故障率 缩短修复之间的准备时间 新版本崩溃时更快的平均恢复时间
|
如何使用Docker构建与环境无关的系统?
有三个主要功能有助于实现这一目标: 卷 环境变量注入 只读文件系统
|
Dockerfile中的命令COPY和ADD命令有什么区别?
一般而言,虽然ADD并且COPY在功能上类似,但是首选COPY。 1.COPY仅支持将本地文件复制到容器中, 2.ADD如仅限本地的tar提取和远程URL支持, ADD添加压缩包中的文件时不需要解压 3.不建议用URL方式添加文件,可以使用wget,因为用ADD添加URL会增加容器的层数,增加size |
什么是docker镜像
Docker镜像是Docker容器的源代码。换句话说,Docker镜像用于创建容器。使用build命令创建镜像,并且在使用run启动时它们将生成容器。镜像存储在Docker注册表中,registry.hub.docker.com因为它们可能变得非常大,镜像被设计为由其他镜像层组成,允许在通过网络传输镜像时发送最少量的数据。 |
制作docker顺序
WORKDIR APP/ Copy A Copy B |
如何创建镜像docker
Docker build –t testx /home/app 指定app是docker的工作目录 设置了workDIR后,docker的build run copy都是相对于workdir目录进行操作 |
Docker运行状态
· 运行 · 已暂停 · 重新启动 · 已退出 |
Docker镜像与层有什么关系
下面的Dockerfile包含四个命令,每个命令都创建一个层。 FROM ubuntu:15.04 COPY . /app RUN make /app CMD python /app/app.py
|
Docker架构图
docker查看版本
docker version |
Docker拉取镜像
例如:拉取centos镜像 Docker pull centos //默认拉取最新的 Docker pull centos:1156//拉取1156版本的centos镜像 |
Docker查看镜像
Docker image SIZE是解压后的大小 |
从docker hub拉取镜像时如果效率慢如何解决
使用镜像加速器,例如阿里云,docker中国等等 在/etc/docker目录下创建一个daemon.json的文件 |
Docker查找镜像
例如查看仓库是否有tomcat镜像: Docker search tomcat NAME:镜像名称 DESCRIPTION:镜像描述 STARS:镜像热度 OFFICIAL:是否是官方的 AUTOMATE:是否自动构建 |
docker删除镜像
Docker rmi 镜像名称、镜像id
|
创建一个交互式容器
Docker run –it –name c1 centos /bin/bash 会进入容器的交互式界面,exit退出交互式界面。 |
查看正在运行的容器
Docker ps |
创建守护式容器
(1)Docker run –d –-name c2 centos /bin/bash #上面这种方式只能创建容器,但是容器不会运行 (2)Docker run –itd –name c3 centos /bin/bash #这种方式会运行
#进入容器 (4)exit退出容器后,docker ps还是可以查到该容器,容器继续运行 |
查看容器
Docker ps :查看正在运行的容器 Docker ps –a:查看运行过的容器(历史容器) Docker ps –l:查看最后一次运行的容器
|
停止运行的容器
Docker stop c1 #停止c1容器 |
启动容器
Docker start c3 #启动C3容器 |
查看容器详细信息
Docker inspect C3 #查看c3容器详细信息,例如创建时间,id,IP,网络方式 |
查看容器的ip地址
Docker inspect –f=’{{.NetworkSetting.IPAddress}}’ C3 #查看C3镜像的IP |
删除容器
(1)Docker rm 容器名称或ID号 #不能删除正在运行的容器 #删除镜像的用docker rmi (2)Docker rmi `docker ps –a -q` #删除所有容器,符号不是单引号,是~那个点 |
容器与宿主机拷贝文件
(1) Docker cp 1.txt c1:/root #将1.txt从宿主机拷贝到容器root目录下 (2)docker cp c1:/root/1.txt /opt #将容器中的1.txt文件拷贝到宿主机的opt目录下 |
容器目录挂载
Docker run –id –-name=C4 –v /opt:/usr/local/myhtml centos #-v后面参数是 宿主机目录:容器目录 做一个映射关系 #在宿主机opt目录下创建文件时,容器的也会自动创建个文件。 |