Docker概述
Docker为什么会出现
docker的思想就是来自于集装箱 每个箱子都是互相隔离的,docker通过隔离机制,可以将服务器利用到极致。
java—jar(环境)----打包项目带上环境(镜像)----(Docker仓库:商店)—下载我们发布的镜像—直接运行即可
Docker地址
- 官网: https://www.docker.com
- 文档地址:https://docs.docker.com
- 仓库地址:https://hub.docker.com
Docker的优势
虚拟机技术缺点
- 资源占用十分多
- 冗余步骤多
- 启动很慢
容器化技术:不是模拟的一个完整操作系统
比较Docker和虚拟机技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所有就轻便了
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
DevOps开发运维
应用更快速的交付和部署
- 传统:一堆帮助文档,安装程序
- Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
- 使用了docker之后,我们部署应用就和塔积木一样
- 项目打包为一个镜像,扩展
更简单的系统运维
- 在容器之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker基本组成
镜像image
docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像—>run—>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器,最终服务运行或者项目运行就是在容器中的。
容器container
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
启动、停止、删除基本命令
目前就可以把这个容器理解为就是一个简单的linux系统
仓库repository
仓库就是存放镜像的地方 仓库分为公有仓库和私有仓库 Docker Hub默认是国外的 在阿里云可以配置镜像加速
Docker安装
环境准备
-
需要会linux基础命令
-
CentOS7
-
Xshell来远程服务器进行操作
-
安装wget、安装yum(如果CentOS7中有就不用安装)
-
wget
http://mirrors.163.com/centos/7/os/x86_64/Packages/ //下载链接 wget-1.14-18.el7_6.1.x86_64.rpm //版本 rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm //运行命令 rpm -qa|grep "wget" //检查是否安装
-
yum
http://mirrors.163.com/centos/7/os/x86_64/Packages/ //下载链接 centos-release-7-9.2009.0.el7.centos.x86_64.rpm //版本 rpm -ivh centos-release-7-9.2009.0.el7.centos.x86_64.rpm //运行命令 rpm -qa|grep "yum" //检查是否安装
-
环境查看
// 系统内核是3.0以上
[root@localhost ~]# uname -r
3.10.0-1062.el7.x86_64
// 系统版本
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装流程
第一步:卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
第二步:需要的安装包
yum install -y yum-utils
第三步:设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo //默认是国外的
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //阿里云推荐使用
第四步:更新yum软件包索引
yum makecache fast
第五步:安装docker docker-ce 社区 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
第六步:启动docker
systemctl start docker
第七步:经验是否成功安装
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 20.10.1
第八步:hello-world
[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest
Hello from Docker! //docker安装成功
第九步:Docker配制镜像加速器
sudo mkdir -p /etc/docker //新建目录
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://s7i7qjlz.mirror.aliyuncs.com"] // 配置了一个阿里云地址
}
EOF
sudo systemctl daemon-reload //服务镜像重启
sudo systemctl restart docker //docker重启
//下边内容直接复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://s7i7qjlz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第十步:查看一下下载的这个 hello-world镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 12 months ago 13.3kB
卸载docker
// 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
//删除资源 /var/lib/docker 默认工作路径
rm -rf /var/lib/docker