1. Docker的安装部署
Docker的安装支持离线安装与在线安装两种方式。
1.1 离线安装Docker系统
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
补充,也可以从Index of linux/static/stable/网址下载指定版本
第二步:下载离线安装工具
GitHub - Jrohy/docker-install: auto install latest docker by online/offline (binary install)
第三步:将下载好的资源放在一个目录,例如:
第四步:在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录),例如
第五步:执行安装操作
①# 进入/root/setup/docker 文件夹
指令:cd /root/setup/docker
②# 为 install.sh添加执行权限
指令:chmod x install.sh
③# 安装 ./install.sh -f docker-20.10.6.tgz
安装成功后,会出现如下信息:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker 20.10.6 install success!
第六步:安装成功以后,检查安装状态
指令:docker info
1.2 在线安装Docker系统
第一步:安装一组工具
sudo yum install -y yum-utils
第二步:设置 yum 仓库地址
sudo yum-config-manager https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager
第三步:更新 yum 缓存
sudo yum makecache fast #yum 是包管理器
第四步:安装新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
第五步:安装成功以后,检查安装状态
指令:docker info
1.3 Docker服务基本操作
- 启动docker服务
systemctl start docker
- 查看Docker状态
查看docker是否启动了,是否是运行状态
systemctl status docker
- 设置Docker开机自启
systemctl enable docker
- 禁用Docker开机自启
systemctl disable docker
- 重新启动Docker服务
systemctl restart docker
- 查看Docker信息
docker info
- 查看docker info中具体key的信息,例如:
docker info | grep 'Docker Root Dir:'
- 停止docker服务
systemctl stop docker
1.4 Docker镜像操作实践
本章节操作以hello-word镜像为例
- 下载镜像
语法:docker pull 镜像名
案例:(下载一个名为hell-word的镜像)
docker pull hello-world
- 浏览镜像文件
语法:docker images
- 查看镜像详情
语法:docker inspect 镜像名或镜像id
例如:查看一个名为hello-word的镜像
docker inspect hello-world
- 查看镜像历史
一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,
例如:查看hello=word的历史信息(查看镜像进行了什么操作,等。。。)
docker history hello-world
- 导出镜像文件
镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用
语法:docker save hello-world | gzip >(这里填写要导出的镜像名).tar.gz
docker save hello-world | gzip > hello-world.tar.gz
- 删除镜像文件
语法:docker image rm 镜像名或镜像id
例如:删除一个名为hello-word的镜像
docker image rm hello-world
- 导入镜像操作
镜像导入(要在hello-world.tar.gz 文件所在目录下执行这个命令)注意这里的hello-world.tar.gz 文件是我们要导入的镜像,这里以hello-world.tar.gz 文件为例。
docker load < hello-world.tar.gz
- 运行镜像文件
基于镜像,启动容器运行。
语法:docker run 镜像名
docker run hello-world
1.5 Docker 容器操作实践
本次以CentOS镜像为例,讲解容器的基本操作。
- 下载镜像(Image)
通过docker pull指令下载CentOS镜像,例如
docker pull centos:7
说明,官方镜像仓库地址为Docker Hub
下载完以后,查看centos7镜像文件。
docker images
- 创建并启动容器(Container)
基本语法解析:
docker run -it xxxx bash
语法解析
1)xxxx - :镜像名, 或 image id 的前几位,
2)-it :这是两个参数(-i表示交互式操作, -t 表示终端)
3) bash :表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。
案例:通过docker启动运行 centos7镜像
docker run -it centos:7 bash
- 查看Docker中的容器(Container)
查看docker运行中的容器(要在宿主机执行docker指令)
docker ps
说明,假如在容器中执行docker指令会出现如下问题,例如:
- 查看docker运行中的所有容器
docker ps -a
解释-a表示全部(all)
- 查看容器日志(logs)信息
查看容器启动运行日志时,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。
docker container logs 802 #802为自己的容器id(一般写前三位即可)
说明,查看容器的运行日志时,容器应该处于一种运行状态.
- 停止(stop)或重启(Restart)容器(Container)
停止运行的容器,代码如下:
docker container stop 802 #802为容器自己的id
重新启动容器,代码如下:
docker container restart 802 #802位容器自己的id
- 进入(exec)指定容器(Container)
当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:
docker exec -it 802 bash #802为容器id
说明,假如容器处于一种非运行状态,此时你执行docker exec进入容器会出现如下问题:
- 从容器(Container)中退出(exit)
假如从宿主机进入了启动的容器,退出容器需要使用exit指令,例如:
exit
- 删除(rm)容器(Container)
假如容器不用了,可执行删除操作,例如:
docker container rm 802 #802为容器id
说明,假如容器正在运行执行删除,会出现如下问题,例如:
其中,如果删除运行中的容器,需要添加 -f 参数执行强制删除,例如:
docker container rm -f 802 #802为容器id
- 清理所有处于终止状态容器
docker container prune
说明,执行完这个指令以后,可以通过docker ps -a 再查看容器,看看是否有删除
2. 配置
2.1 配置加速器
由于众所周知的一些原因,我们访问 Docker Hub 速度非常慢,为此我们需要添加一个国内的镜像站来作为极速器。
2.1.1 加速器
登录地址开放云原生应用-云原生(Cloud Native)-云原生介绍 ,点击"创建我的容器镜像",找到"Docker Hub 镜像站点",如下图:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": "https://78ssvya7.mirror.aliyuncs.com" } EOF sudo systemctl daemon-reload sudo systemctl restart docker
2.1.2 DaoCloud 加速器
注册 DaoCloud 账户(支持微信登录),然后访问:道客镜像站_DaoCloud道客
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b149d2fd.m.daocloud.io
2.2 Docker开启远程管理
默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开 TCP 监听,步骤如下:
2.2.1 修改配置文件
编辑配置文件 /etc/systemd/system/multi-user.target.wants/docker.service,在环境变量 ExecStart 后面添加 -H tcp://0.0.0.0,允许来自任意 IP 的客户端连接。
2.2.2 重启Docker daemon
systemctl daemon-reload systemctl restart docker
2.2.3 验证
参考链接
聊聊Docker理论知识(二) - 小水滴18 - 博客园
Docker的安装_没名字的星星的博客-CSDN博客_docker安装
docker安装详细教程_polo.feng的博客-CSDN博客_安装docker
Docker系列-docker安装 - 狮子挽歌丿 - 博客园
Docker安装及使用 - 知乎
《重识云原生系列》专题索引:
- 第一章——不谋全局不足以谋一域
- 第二章计算第1节——计算虚拟化技术总述
- 第二章计算第2节——主流虚拟化技术之VMare ESXi
- 第二章计算第3节——主流虚拟化技术之Xen
- 第二章计算第4节——主流虚拟化技术之KVM
- 第二章计算第5节——商用云主机方案
- 第二章计算第6节——裸金属方案
- 第三章云存储第1节——分布式云存储总述
- 第三章云存储第2节——SPDK方案综述
- 第三章云存储第3节——Ceph统一存储方案
- 第三章云存储第4节——OpenStack Swift 对象存储方案
- 第三章云存储第5节——商用分布式云存储方案
- 第四章云网络第一节——云网络技术发展简述
- 第四章云网络4.2节——相关基础知识准备
- 第四章云网络4.3节——重要网络协议
- 第四章云网络4.3.1节——路由技术简述
- 第四章云网络4.3.2节——VLAN技术
- 第四章云网络4.3.3节——RIP协议
- 第四章云网络4.3.4节——OSPF协议
- 第四章云网络4.3.5节——EIGRP协议
- 第四章云网络4.3.6节——IS-IS协议
- 第四章云网络4.3.7节——BGP协议
- 第四章云网络4.3.7.2节——BGP协议概述
- 第四章云网络4.3.7.3节——BGP协议实现原理
- 第四章云网络4.3.7.4节——高级特性
- 第四章云网络4.3.7.5节——实操
- 第四章云网络4.3.7.6节——MP-BGP协议
- 第四章云网络4.3.8节——策略路由
- 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
- 第四章云网络4.3.10节——VXLAN技术
- 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
- 第四章云网络4.3.10.3节——VXLAN隧道机制
- 第四章云网络4.3.10.4节——VXLAN报文转发过程
- 第四章云网络4.3.10.5节——VXlan组网架构
- 第四章云网络4.3.10.6节——VXLAN应用部署方案
- 第四章云网络4.4节——Spine-Leaf网络架构
- 第四章云网络4.5节——大二层网络
- 第四章云网络4.6节——Underlay 和 Overlay概念
- 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
- 第四章云网络4.7.2节——virtio网络半虚拟化简介
- 第四章云网络4.7.3节——Vhost-net方案
- 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
- 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
- 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
- 第四章云网络4.7.8节——SR-IOV方案
- 第四章云网络4.7.9节——NFV
- 第四章云网络4.8.1节——SDN总述
- 第四章云网络4.8.2.1节——OpenFlow概述
- 第四章云网络4.8.2.2节——OpenFlow协议详解
- 第四章云网络4.8.2.3节——OpenFlow运行机制
- 第四章云网络4.8.3.1节——Open vSwitch简介
- 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
- 第四章云网络4.8.4节——OpenStack与SDN的集成
- 第四章云网络4.8.5节——OpenDayLight
- 第四章云网络4.8.6节——Dragonflow
- 第四章云网络4.9.1节——网络卸载加速技术综述
- 第四章云网络4.9.2节——传统网络卸载技术
- 第四章云网络4.9.3.1节——DPDK技术综述
- 第四章云网络4.9.3.2节——DPDK原理详解
- 第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述
- 第四章云网络4.9.4.2节——智能网卡实现
- 第六章容器6.1.1节——容器综述
- 第六章容器6.1.2节——容器安装部署