1. 为什么使用docker
思考: 我们的项目面临的环境: (1)开发环境 (2)测试环境 (3)线上环境
开发好的项目--->打包--->部署到测试环境--->部署到线上环境
思考: 如果开发环境使用jdk1.8;测试环境使用jdk1.7;而线上环境使用的是jdk1.6,那么我们开发好的项目能否在测试环境或者线上环境下运行?
这种情况简称为:水土不服
解决方法:使用docker技术,解决跨平台问题:项目+环境 ==》镜像
1.1 docker的概念
1.2安装docker软件
Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS7安装Docker。官网: https://www.docker.com
1、yum包更新到最新---因为现在的docker更新比较快,而现在我们使用的centos不是最新
命令: yum update
2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 命令 : yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置yum源---从哪个网址下载docker软件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、安装docker ,出现输入的界面都按y
yum install -y docker-ce
5、查看docker版本,验证是否验证成功
docker -v
1.3 docker架构
镜像(lmage) : Docker镜像(lmage),就相当于是—个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。
容器(Container) :镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
比如: 安装mysql====>下载mysql的镜像 【类】 ---->根据镜像可以创XQ [对象]
1.4 配置镜像加速器
默认情况下,将来从docker hub (Docker)上下载docker镜像,太慢。一般都会配置镜像加速器:
USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
==阿里云== 网易云
腾讯云
(1)阿里云
1.5关于docker中常用的命令
1.5.1 关于docker服务的命令
(1)查看docker服务的状态: systemctl status docker
(1)关闭docker服务: systemctl stop docker
(3)启动docker服务: systemctl start docker
(4)重启docker服务: systemctl restart docker
(5)开机启动docker服务: systemctl enable docker
1.5.2 关于docker镜像的命令
(1)拉取指定镜像到本地: docker pull centos:7
---如果没有:7 表示拉取的版本默认为latest
(2)查看本地镜像: docker images
(3)删除本地镜像 :
根据镜像id删除==============> docker rmi 镜像的ID
根据镜像的名称和版本号删除===> docker rmi name:tag
(4)搜索镜像-------建议在镜像仓库搜索 www.hub.docker.com
命令:docker search 镜像名称
1.5.3 关于docker容器的命令
根据镜像创建容器 :
(1)这种方式如果退出容器时会关闭容器:
docker run -it --name=c1 centos:7 /bin/bash
(2)查看所有的容器:
docker ps 查看正在运行的容器
docker ps -a 查看所有的容器
(3)根据镜像创建容器:创建容器,但不会进入容器内部
docker run -id --name=c2 centos:7
(4)进入指定容器内部,exit退出容器内部时,不会关闭容器
docker exec -it c2 /bin/bash
(5)关闭容器 : docker stop 容器名称或者id
(6)开启容器 : docker start 容器名称或id
(7)删除容器: docker rm 容器名或id ----删除容器时,容器必须为关闭状态