一.Docker的思想
1.集装箱
会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以
2.标准化
2.1.运输的标准化:Docker又一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境,就直接指派大海疼去搬运这个集装箱就可以
2.2.命令的标准化:Docker提供了一系列的命令,帮助我们去获取集装箱等等操作
2.3.提供了REST的API:衍生出了很多的图形化界面,Rancher
3.隔离性
3.1.Docker在运行集装箱内的内容时,会在linux的内核中,单独的开辟一片空间,这片空间不会影响到其他程序
注册中心->(超级码头,上面放的就是集装箱)
镜像->(集装箱),负责从注册中心把集装箱拉取下来,这个拉取的内容就是镜像(集装箱)
容器->负责运行集装箱,运行之后的集装箱就是容器,也称之为运行起来的镜像
二.Docker的基本操作
2.1.安装Docker
1.先安Docker的依赖环境
yum -y install yum-utils device-mapper-persistent-data 1vm2
2.设置一下下载Docker的镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装Docker
yum makacache fast
yum -y install docker-ce
4.启动并设置为开机自动启动,测试
4.1.启动docker服务
systemctl start docker
4.2.设置开机自动启动
systemctl enable docker
4.3.测试
docker run hello-world
2.2.Docker的中央仓库
1.Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢-->hub.docker.com
2.国内的镜像网站:网易蜂窝。。。c.163.com/hub,进去后在次修改url改为hub,点击回车
hub.daocloud.io(推荐使用)
3.在公司内部采用私服的方式拉取镜像
需要在/etc/docker/daemon.json
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["ip:port"]
}
重启两个服务
systemctl daemon-reload
systemctl restart docker
2.3.镜像的操作
1.拉取镜像到本地
docker pull 镜像名称[:tag]
例子:docker pull tomact这样默认是从中央仓库拉取的,需要到推荐的hub.daocloud.io去找镜像地址
docker pull daocloud.io/library/tomcat:8.5.15-jre8,这样就可以去daocloud中拉取8.5的一个镜像文件
2.查看全部本地的镜像
docker images
3.删除本地镜像
docker rmi:镜像的标识
4.镜像的导入导出
4.1:将本地镜像导出:docker save -o 导出的路径 镜像id,例子->docker save -o ./tomcat.image b8
4.2:那么,如果删除镜像后,怎么导入回来呢?docker load -i tomcat.image,语法:docker load -i 镜像文件
4.3:这时会发现名字没有了,使用docker tag b8 tomcat:8.5(冒号前面是镜像名称,冒号后面是版本之类的),可以修改镜像名称
2.4.容器的操作
1.运行容器
简单操作:
docker run 镜像的标识 | 镜像名称[:tag]
常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识 | 镜像名称[:tag]
-d:代表后台运行容器
-p:宿主机端口:容器端口:为了映射当前linux的端口和容器的端口
--name 容器名称:指定容器的名称
例子:docker run -d -p 8081:8080 --name tomcat b8,这里需要注意的是8081是linux的端口,8080是windows的端口
2.查看正在运行的容器
docker ps [-qa]
-a:代表查看全部的容器,包括没有运行
-q:只查看容器的唯一标识
3.查看容器的日志
docker logs -f 容器id
-f:可以滚动查看日志的最后几行
4.进入到容器内部
docker exec -it 容器id bash
例子:docker exec -it 7 bash
5.删除容器(删除前需要先停止容器)
docker stop 容器id-->停止指定的容器
docker stop $(docker ps -qa)-->停止全部容器
docker rm 容器id-->删除指定容器
docker rm $(docker ps -qa) -->删除全部容器