1.docker简介
docker是基于go语言实现的开源容器引擎,有助于快速交付使用。它可以将应用程序和基础设施层隔离,并且将基础设施层和应用程序一样进行管理。使用docker可以更快地打包、测试及部署应用程序,并且能缩短从编写到部署的周期。
2.Docker与虚拟机区别
虚拟化技术是在一个物理机上虚拟化不同的操作系统。而docker是在物理机上容器化虚拟应用程序,启动速度比虚拟机更快。
3.docker架构
3.1 与传统的安装应用方式对比
传统的方式安装linux软件需要一个个找依赖包,然后一个个发布安装到对应的linux系统上,效率低下。Docker可便于开发者直接把自己开发的成果放入其中进行管理,同时提供了远程仓库便于运维人员选择安装对应的应用。
3.2 docker架构内容
Docker daemon( Docker守护进程)
Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。可通过 Docker客户端与之通信。
Client( Docker客户端)
Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon通信。图中, docker build等都是 Docker的相关命令。
Images( Docker镜像)
Docker镜像是一个只读模板,它包含创建 Docker容器的说明。它和系统安装光盘有点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行 Docker镜像中的程序。
Container(容器)
容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API或者 CLI命令来启停、移动、删除容器。
Registry
Docker Registry是一个集中存储与分发镜像的服务。构建完 Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助 Docker Registry来避免镜像的手动复制。
一个 Docker Registry可包含多个 Docker仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker镜像。这跟 Maven的仓库有点类似,如果把 Docker Registry比作 Maven仓库的话,那么 Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。
4.安装步骤
系统要求linux内核在3.10以上。
1、先卸载原有的老版本,如果之前没有安装docker那就不用执行当前这一步
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装相关依赖包
$ sudo yum -y update
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3、设置仓库
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、查看历史安装版本,如果没有特定docker版本要求,则下步第5步执行(2)就好了,有那么就执行(1)选择自己需要的版本就好了
$ yum list docker-ce --showduplicates | sort -r
5、选择版本安装
1)选择版本:docker-ce-18.09.1(安装当前的版本)
$ sudo yum install docker-ce-<docker-ce-18.09.1> docker-ce-cli-<docker-ce-18.09.1> containerd.io
2)不选择版本(默认安装最新版的docker)
$ sudo yum install docker-ce docker-ce-cli containerd.io
6、启动Docker
$ sudo systemctl start docker
$ sudo systemctl enable docker入代码片
7、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
8.更改docker镜像
1)修改或创建daemon.json文件:
vi /etc/docker/daemon.json
将以下配置写入到文件中,保存并退出(不会操作的百度下vi命令吧):
{
"registry-mirrors": ["http://hub-mirror.c.163.com",
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
]
}
2)重启docker:
systemctl restart docker.service
5.docker常见命令
5.1 Docker的镜像相关
(1) 搜索一个镜像
docker search images[:version]
(2)下载一个镜像
docker pull images[:version]
(3)查看下载的镜像
docker images
(4)删除镜像
docker rmi images[:version]/imagesId
docker rmi docker images -q
5.2 Docker的容器相关
(1)创建容器
交互式 (进入容器)
docker run -it --name=containerName imagesName[:version] /bin/bash
守护式(不进入容器,后台运行)
docker run -id --name=containerName imagesName[:version]
交互式—>守护式
容器中的命令 输入 exit
守护式—>交互式 [container必须是启动状态]
宿主机的命令 输入 docker exec -it containerName /bin/bash
(2) 查看容器
查看当前正在运行的容器
docker ps
查看所有容器
docker ps -a
(3)启动容器
docker start|stop|restart containerName/containerId
(4)查看容器的详细信息
docker inspect containerName/containerId
(5)删除容器
docker rm containerName/containerId
docker rm docker ps -aq