1.Docker概述
认识Docker技术
1.1 Docker的概念
docker是以docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计,用于构建、发布和运行分布式的平台。它是一个跨平台、可移植且简单易用的容器解决方案。
1.2 Docker的优点
- 更快的交付和部署:使用docker,开发人员可以使用镜像来快速构建一套标准的开发环境,开发完成之后,测试和运维人员可以直接部署软件镜像来进行测试和发布,以确保开发测试过的代码可以在生产环境中无缝运行,大大简化了持续集成、测试和发布的过程。docker可以快速的创建和删除容器
- 高效的资源利用和隔离:docker容器的运行不需要额外的虚拟化管理程序支持,它是内核级的虚拟机,与底层共享操作系统。虽然doker容器间是共享主机资源的,但是每个容器所使用的cpu、内存、文件系统、进程、网络等都是相互隔离的
- 环境标准化和版本控制:docker可以快速地回滚到该镜像的前一个版本、可以快速地进行复制和实现冗余
- 更轻松的迁移和扩展:docker容器几乎可以在所有平台上运行,这种兼容性可以让用户在不同平台之间轻松地迁移应用
- 更简单的维护和更新管理:docker的镜像和镜像之间不是相互隔离的。镜像采用了多层文件的联合体,通过这些文件层,可以组合出不同的镜像,使利用基础镜像进一步扩展镜像变得非常简单
1.3 Docker的核心组件
1)docker客户端(client):通过命令行或者其他工具使用Doker API与Docker的守护进程通信
2)docker服务器(docker daemon):是服务器组件,以Linux后台服务的方式运行
3)docker镜像(image):镜像可以用于创建docker容器,每一个镜像由一系列的层组成
4)docker仓库:docker集中存放镜像文件的场所。docker仓库分为公有仓库和私有仓库
5)docker容器(container):docker利用容器来运行应用。容器是从镜像创建的运行实例,它可以被启动、开始、终止、删除。
2.在centos7中在线安装Docker
1)检查安装docker的基本要求:
64位CPU架构的计算机,目前不支持32为CPU架构的计算机
系统的Linux内核版本为3.10及以上
开启CGroups和namespace功能
2)使用命令查看当前系统的内核版本
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
3)关闭防火墙,并查询防火墙是否关闭
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# systemctl disable firewalld #设置开机禁用防火墙
[root@localhost ~]# systemctl status firewalld #查看防火墙状态
出现“Active: inactive (dead)”提示,则表示防火墙已关闭
4)关闭selinux
[root@localhost ~]# setenforce 0
将SELINUX设置为disabled
5)测试与外网的连通性
[root@localhost ~]# ping -c 4 www.sina.com.cn
ping: www.sina.com.cn: 未知的名称或服务
ping不同则修改一下/etc/resolv.conf
[root@localhost ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
再次测试
[root@localhost ~]# ping -c 4 www.sina.com.cn
PING ww1.sinaimg.cn.w.alikunlun.com (36.131.137.217) 56(84) bytes of data.
64 bytes from 36.131.137.217 (36.131.137.217): icmp_seq=1 ttl=128 time=11.6 ms
64 bytes from 36.131.137.217 (36.131.137.217): icmp_seq=2 ttl=128 time=11.7 ms
64 bytes from 36.131.137.217 (36.131.137.217): icmp_seq=3 ttl=128 time=12.2 ms
6)配置阿里云yum源
[root@localhost ~]# mv /etc/yum.repos.d/* /media
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
7)配置时间同步
[root@localhost ~]# yum -y install ntpdate
[root@localhost ~]# ntpdate ntp.aliyun.com
[root@localhost ~]# date
2024年 11月 13日 星期三 13:23:15 CST
8)如果安装过旧版本,则需卸载已安装的旧版本;反之,此步骤可以跳过
[root@localhost ~]# yum remove docker docker-common docker-selinux docker-engine
9)安装必须的软件包
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-date lvm2
10)设置docker-ce的yum源
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
11)安装docker(默认最新版本)
[root@localhost ~]# yum install -y docker-ce
12)启动docker服务并设置开机自启
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
查看docker进程是否已启动
[root@localhost ~]# ps -ef | grep docker
root 10887 1 0 13:45 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 11067 2152 0 13:46 pts/0 00:00:00 grep --color=auto docker
13)配置镜像加速器,因国内访问Docker Hub有时会遇到困难,所以可以配置镜像加速器,国内很多云服务商提供了加速器服务
[root@localhost ~]# vi /etc/docker/daemon.json
添加以下内容
{
"registry-mirrors":["https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn/",
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"]
}
重启docker服务
[root@localhost ~]# systemctl daemon-reload #重新加载系统配置
[root@localhost ~]# systemctl restart docker #重启docker服务
14)运行nginx镜像来测试是否安装成功
[root@localhost ~]# docker run -dit -p 80:80 nginx:latest
打开浏览器输入自己的ip,则表示docker环境已经安装完成并能正常运行。