1.Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
2.docker相对于VM还要轻量级的技术,要说感觉的化类似于jar包,docker容器已经打包好了所有程序,只需要将容器在有资源的服务器上运行起来就是一个成型的产品,迁移时只需要将容器重新打包下来,导入到其他服务器即可运行。
3.Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。
4.通常是一台虚拟机安装一个Docker,也可以多台机器安装多个Docker,组成Docker集群,每个Docker里面包含了诸多镜像,运行镜像产生容器,一个镜像可以运行多个容器,每个容器运营一个微服务。
docker和虚拟机的对比
虚拟机(虚拟机连硬件都模拟,模拟的一个完整的操作系统)的缺点:
1、资源占用多
2、冗余步骤多
3、启动慢
Docker和传统虚拟化方式的不同之处:
传统的虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上在运行所需应用进程。
而容器内的应用进程直接运行与宿主机的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
每个容器之间相互隔离,每个容器自己有自己的文件系统,容器之间的进程不会互相影响,能区分计算资源。
阿里官网下载:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b11KLDD65
这里我将centos安装阿里dockker镜像源和安装docker的方法复制出来了(需要链接外网)
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
rm -rf /var/lib/docker
umount /var/lib/docker/devicemapper
#查看有哪些docker程序已安装并卸载掉
yum list installed | grep docker
我这里只有docker-client和docker-common
yum remove -y docker-client docker-common
yum list installed |grep docker
docker version
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
#验证下安装是否成功
docker version
这个是官方地址,可能比较慢,推荐使用下面的国内镜像地址
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
国内镜像地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
yum install -y openssl
yum list |grep openssl
https://github.com/goharbor/harbor/releases
tar xf harbor-offline-installer-v2.7.0.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname 安装harbor的那台IP的地址
port:harbor的端口自定义即可
harbor_admin_password 自定义密码
sh install.sh
浏览器访问192.168.30.101:9687 IP和端口是之前harbor.yml文件中设置好的,密码是harbor_admin_password的内容
-1代表无限大
这是我的另外一台(docker02)节点上面已经装好了docker,把镜像仓库指地址向到我已经搭好仓库的那台
vim /etc/docker/daemon.json
重启docker,让仓库地址生效
systemctl restart docker
docker01节点操作
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.30.101:9687"]
}
systemctl restart docker
systemctl status docker
因为是公网拉取的应该不快
docker pull mysql
docker images
打包已有镜像为新的镜像
docker tag mysql:latest 192.168.30.101:9687/registry/mysql:v2
docker images
docker login -u admin -p admin 192.168.30.101:9687
docker push 192.168.30.101:9687/registry/mysql:v2
docker pull 192.168.30.101:9687/registry/mysql:v2
docker images
基础命令转自其他博客大佬:
https://blog.csdn.net/D1179869625/article/details/122933562
docker的使用也推荐看看菜鸟教程适合新手门还有例子简单易懂:
https://www.runoob.com/docker/docker-tutorial.html