初时Docker和部署
1.什么是Docker
docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。
2.容器和虚拟化的区别
虚拟化技术最主要的目的是提高硬件资源的使用率。
传统虚拟化是实现虚拟出多个操作系统共同使用硬件资源;
容器虚拟化是实现在单个操作系统上虚拟出多个资源组共同使用硬件资源。
从技术原理上容器虚拟化更优于传统虚拟化,但在实际应用中选择一种技术还需要考虑它们的兼容性,技术成熟度,操作灵活性,价格等诸多因素。
3.部署Docker
1. Centos官网安装教程:https://docs.docker.com/engine/install/centos/ 2. 3. Ubuntu官网安装教程:https://docs.docker.com/engine/install/ubuntu/
1.卸载历史版本
1. sudo yum remove docker \ 2. docker-client \ 3. docker-client-latest \ 4. docker-common \ 5. docker-latest \ 6. docker-latest-logrotate \ 7. docker-logrotate \ 8. docker-engine
2.设置存储库
1. sudo yum install -y yum-utils 2. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装Docker最新引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.安装Docker特定安装引擎
1.先查看当前docker-ce都有那些版本
1. yum list docker-ce --showduplicates | sort -r 2. 3. docker-ce.x86_64 3:24.0.0-1.el8 docker-ce-stable 4. docker-ce.x86_64 3:23.0.6-1.el8 docker-ce-stable 5. <...>
2.替换为所需版本,然后运行以下命令 要安装的命令:<VERSION_STRING>
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
5.启动Docker
systemctl enable docker --now
6.测试
下拉一个测试镜像,来测试是否可用,下拉较慢,需要部署容器加速,因为docker默认仓库在国外服务器,所以访问慢很正常,需要部署国内的容器加速来测试。
1. [root@localhost ~]# docker pull hello-world 2. Using default tag: latest 3. latest: Pulling from library/hello-world 4. 719385e32844: Pulling fs layer
4.创建docker个人容器加速
1.登录阿里云官网登录个人账号
https://cn.aliyun.com/
2.搜索容器镜像服务选择立即开通
3.个人加速器地址
下方有针对不同系统的部署镜像加速器的教程
4.部署加速器
1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
1. sudo mkdir -p /etc/docker 2. sudo tee /etc/docker/daemon.json <<-'EOF' 3. { 4. "registry-mirrors": ["https://a*******si3.mirror.aliyuncs.com"] #此处填自己的 5. } 6. EOF 7. sudo systemctl daemon-reload 8. sudo systemctl restart docker
5.再次测试
1. [root@localhost ~]# docker pull hello-world 2. Using default tag: latest 3. latest: Pulling from library/hello-world 4. 2db29710123e: Pull complete 5. Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f 6. Status: Downloaded newer image for hello-world:latest 7. docker.io/library/hello-world:latest