概述
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
安装Docker
centos7为例
#安装需要的软件包 :yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源 :yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker:sudo yum install docker
#启动docker并让它随系统自启
sudo service docker start
sudo chkconfig docker on
组成部分
Docker Client(客户端)
- docker客户端是用户与docker进行交互的主要方式,当在终端输入docker命令时,对应的就会在服务端产生对应的作用,并返回结果给客户端。
Docker Server (服务端)
- docker daemon就是docker的服务端,它负责监听docker api的请求并管理docker对象,如镜像、容器、网络、数据卷等
Docker Registries
- 俗称docker仓库,专门用于储存镜像的云服务环境,docker hub就是一个公有的存放镜像的地方,类似GitHub储存代码文件。
Docker Objects (对象):
- 镜像:一个docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件
- 容器:镜像被运行起来后的实例
- 网络:外部或者容器间如何互相访问的网络方式,如host模式、bridge模式等
- 数据卷:容器与宿主机之间、容器与容器之间共享存储方式,类似虚拟机与主机之间的共享文件目录
docker基本使用
常用命令
docker环境信息 -> info、version
镜像管理 -> build、images、import、load、rmi、save、tag、commit
容器运维操作 -> attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器生命周期 start、stop、restart、pause、rm、run、unpause、kill、create
镜像仓库命令 -> login、logout、pull、push、search
查看API文档
docker <management Commands> --help
搜索需要的镜像
下载镜像到docker本地服务器中
配置国内镜像源,提高拉取速度
echo {"registry-mirrors": ["http://hub-mirror.c.163.com"]} > /etc/docker/daemon.json
下载centos镜像
docker pull centos
docker的简单使用
显示下载镜像
测试创建容器
开启容器,运行一个后台终端
docker run -itd centos /bin/bash
#options解释
-i -> Allocate a pseudo-TTY
-t -> Keep STDIN open even if not attached
-d -> Run container in background and print container ID
注意:容器之间是互不干扰的
通过容器的修改文件,生成一个新的镜像
提交到docker hub,线上保存
docker login -u username -p password
docker commit image
对于docker用处和作用,目前个人知道的有两个,一是做集群处理,另一个就是创建自己的独立开发环境容器,随时可以用。