一、docker简介
1、使用docker前:部署软件存在:环境不一致、安装繁琐等问题。
2、docker是镜像技术,能够实现软件带环境运行,实现“一次镜像、处处运行”,能够系统平滑移植,属于容器虚拟化技术。docker利用的是宿主机的内核,不需要加载操作系统的内核。
学习docker,成为devops engineer的必经之路
3、docker基本组成:镜像、容器、仓库。
4、docker与虚拟机的区别
Docker容器 | 虚拟机 | |
操作系统 | 与宿主机共享OS | 宿主机OS上运行虚拟机OS |
存储大小 | 镜像小,便于存储与传输 | 镜像庞大 |
运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 |
移植性 | 轻便、灵活,适应于Linux | 笨重,与虚拟机技术耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
部署速度 | 快速,秒级 | 较慢,10s以上 |
二、B站入门视频
用 docker-compose 简化多容器服务_哔哩哔哩_bilibili
windows用户手撸开发炼丹炉(WSL2中使用Docker基于Centos7.9+宝塔7.9配置的开发环境)-pudn.com
三、PD/VMWave+CentOS+docker安装
以mac M1为例
1、安装虚拟机
- 使用PD虚拟机
下载安装虚拟机Parallels Desktop,建议在官网下载 Mac 上的虚拟机 - 使用 Parallels 虚拟机运行 Windows 应用
- 使用VMWare虚拟机
Mac M1的下载地址:https://customerconnect.vmware.com/downloads/get-download?downloadGroup=FUS-PUBTP-2021H1
其他版本的VMWare可以见下面这篇文章 苹果mac(M1)安装vmware虚拟机及Linux系统_寻找bug测试有责的博客-CSDN博客_mac vmware
2、下载CentOS7镜像
官网下载的镜像在安装开始陷入了无限循环的bug中
踩了无数坑,折腾好久终于找到可成功的镜像,为啥官网的CentOS7镜像不行呢,是因为MAC M1各种不兼容!!!
ARM的CentOS7用下面的镜像可以安装成功,是民间高手制作出来的centos7镜像
百度网盘地址:centos7 for m1
密码: c81n
3、在虚拟机上安装CentOS操作系统
安装步骤参考下面文章,完全足够
Mac苹果系统的PD虚拟机安装Centos7详细教程_IT大力水手的博客-CSDN博客_pd安装centos
4、安装Docker
a.安装gcc
输入命令:yum -y install gcc
出现了如下错误
Failing package is: kernel-headers-4.18.0-348.20.1.el7.aarch64
GPG Keys are configured as: https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
x86架构上构建arm64架构的docker镜像_HYESC的博客-CSDN博客_docker arm镜像
参考了上面链接,改为 yum -y install gcc --nogpgcheck 就可以了
b.安装gcc-c++
输入命令:yum -y install gcc-c++
这一步一共踩了两个个坑,终于成功了,安装成功的图如下:
下面列出安装过程中遇到的坑和解决办法。
b.1 centos yum repos 报错:
解决办法备份本地CentOS-Base.repo,去阿里云官网更新镜像。步骤可参考链接 【linux】linux (CentOS 7)报错:yum 命令报错 “ There are no enabled repos ” —— yum repolist 为 0,yum list 正常时_顾三殇的博客-CSDN博客_there are no enabled repos.
也可以按照官网 centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 的4步就会成功。(但是。。我还是失败了,yum makecache 这一步遇到了b.2的问题,b.2解决后,官网这4步就成功了)
b.2 阿里云镜像访问失败,mirrors.aliyun.com/centos/7/os/aarch64/repodata/repomd.xml 404错误:
b.2.1 检查阿里云镜像的DNS地址是否配了:
nameserver 223.5.5.5
nameserver 223.6.6.6
b.2.2 检查下载链接是否正确:
去官网一看, mirrors.aliyun.com/centos/7/os/aarch64/repodata/repomd.xml这个链接已经不存在了,正确的是 mirrors.aliyun.com/centos-altarch/7/os/aarch64/repodata/repomd.xml解决办法是修改 CentOS-Base.repo文件,将/centos/改为/centos-altarch。
改完之后 yum makecache 就成功了,如下图
这些统统解决后,gcc-c++ 就能成功安装啦
c.安装docker软件包
c.1 安装yum-utils包
yum install -y yum-utils
c.2 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
c.3 安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
安装成功截图如下
c.4 启动docker
systemctl start docker
docker成功启动如下
c.5 测试 docker
docker run hello-world
doucker原理:运行镜像,如果本地有,将本地的镜像形成容器实例。如果本地没有,从服务器拉到本地,再形成容器实例。
如下图,出现Hello from Docker! 表明docker运行成功啦!
5、配置阿里云镜像加速器
用于加速下载,镜像加速器配置见下图
镜像加速的网址在阿里云开发社区申请
6.Docker常用命令
6.1 帮助启动类命令
systemctl start docker 启动docker
systemctl stop docker 停止docker
systemctl restart docker 重启docker
systemctl status docker 查看docker状态
systemctl enable docker 开机启动docker
docker info 查看概要信息
docker --help
6.2 镜像命令
docker images 查看镜像
docker search 某个镜像名字 查找镜像
docker pull 某个镜像名字
docker system df 查看镜像/容器/数据卷所占空间
docker rmi 某个镜像名字 删除镜像
docker 虚悬镜像,仓库名/标签都是none,建议删除
6.3 容器命令
新建/启动docker docker run [OPTIONS] IMAGE [COMMAND][ARG] 常用 docker run -it