Docker特点:
1.上手快
用户可以快速的把自己的程序"Docker"化。Docker依赖于"写时复制"(copy-on-write)模型,使修改应用程序也非常迅速。
Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能充分利用资源。
2.职责的逻辑分类
Docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境一致性。
3.快速高效的开发生命周期
Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。
4.鼓励使用面向服务的架构
Docker还鼓励面向服务的体系结构和微服务架构,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。
2.Docker组件
1.1 Docker客户端和服务器
Docker是一个客户端-服务器(C/S)架构程序。
1.2 Docker镜像
镜像是构建Docker的基石。用户基于镜像来运行自己的容器。也可以将镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。
1.3 Registry(注册中心)
Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。
Docker公司运营公共的Registry叫做Docker Hub。用户可以在Docker Hub注册账号,分享并保存自己的镜像(说明:在Docker Hub下载镜像巨慢,可以自己构建私有的Registry)。
1.4 Docker容器
Docker可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容器即可。
3.Docker安装与启动
3.1在VMware Workstation中安装CentOS7.
挂载后,使用ip addr命令查看本地IP或者ifconfig查看ip地址
3.2 安装Docker
使用yum命令在线安装
yum install docker
对于centos6.5而言,需要安装EPEL
关于EPEL:https://Fedoraproject.org/wiki/EPEL/zh-cn
>rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
>rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
>yum -y install yum -priorities
再安装docker
>yum -y install docker-io //安装docker
>service docker start //启动docker
>chkconfig docker on //设置开机自动启动docker
安装后查看Docker版本
docker -v
启动与停止Docker
- 启动docker:systemctl start docker
- 停止docker:systemctl stop docker
- 重启docker:systemctl restart docker
- 查看docker状态:systemctl status docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker帮助文档:docker –help.
-----------------------------------------centos6.5--------------------------------------
- 获取Centos镜像>docker pull centos:latest
- 查看镜像运行情况 >docker images centos
- 在容器下运行 shell bash >docker run -i -t centos /bin/bash
- 停止容器>docker stop <CONTAINER ID>
- 查看容器日志>docker logs -f <CONTAINER ID>
- 删除所有容器>docker rm $(docker ps -a -q)
- 删除镜像 >docker rmi <image id/name>
Docker镜像:
Docker镜像是由文件系统叠加而成(是一种文件的存储形式,Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。
3.3 列出镜像
列出docker下的所有镜像:docker images
- REPOSITORY:镜像所在的仓库名称
- TAG:镜像标签
- IMAGE ID:镜像ID
- CREATED:镜像的创建日期(不是获取该镜像的日期)
- SIZE:镜像大小
- 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
3.4 搜索镜像
docker search 镜像名称
- NAME:仓库名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反应一个镜像的受欢迎程度
- OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
3.5 拉取镜像
3.5.1 从Docker Hub拉取。Docker镜像首页,包括官方镜像和其它公开镜像。
使用命令拉取:
docker pull centos:7 |
3.5.2 ustc的镜像
网址:https://lug.ustc.edu.cn/wiki/mirrors/help/docker
步骤:(1)编辑该文件:vi /etc/docker/daemon.json // 如果该文件不存在就手动创建;说明:在centos7.x下,通过vi。
(2)在该文件中输入如下内容:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } |
(3)注意:一定要重启docker服务,如果重启docker后无法加速,可以重新启动OS
然后通过docker pull命令下载镜像:速度杠杠的。
3.6 删除镜像
3.6.1docker rmi $IMAGE_ID:删除指定镜像
3.6.2docker rmi `docker images -q`:删除所有镜像
Docker容器操作
查看正在运行容器:dockper ps
查看所有的容器(启动过的历史容器)
docker ps -a
查看最后一次运行的容器:
docker ps -l
查看停止的容器:
docker ps -f status=exited
创建与启动容器
- 创建容器命令:docker run
- -i:表示运行容器
- -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- --name :为创建的容器命名。
- -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
- -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
- -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射