Docker(一)基本介绍与安装、镜像配置

艺帆风顺 发布于 2025-04-03 23 次阅读


1.为什么要用到docker?

在我们实际业务中,原生技术的微服务的部署十分麻烦,例如我们安装redis,Ubuntu和Centos的命令也有差异,安装MySQL,不同操作系统和环境底层的函数库和依赖可能会有差异,导致实际部署时问题千奇百怪,由此docker就是来解决这样的问题的

docker可以把各个组件所依赖的函数库等一并打包为镜像,方便各个组件和微服务的部署

2.安装docker

2.1卸载旧版本

如果安装过旧版本的docker,用列命令修改:

yum remove docker 
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
docker-ce

2.2安装docker

yum install -y yum-utils 
device-mapper-persistent-data
lvm2 --skip-broken

更新本地镜像源

# 设置docker镜像源
yum-config-manager
--add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

输入命令安装docker-ce社区免费版本

yum install -y docker-ce

2.3启动docker

docker在使用时需要配置到多个端口,如果你项目在开发阶段,不是部署到服务器,而是本机,那么我建议你关闭防火墙,如果你需要发布到云服务器上,那么一定要记住你用到的端口,开放你需要的端口,否则无法访问

关闭防火墙:

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

命令启动docker:

systemctl start docker # 启动docker服务

systemctl stop docker # 停止docker服务

systemctl restart docker # 重启docker服务

查看版本:

docker -v

2.4配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors.

2.4.1 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2.4.2 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json {
"registry-mirrors": ["https://iu4pcpiy.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3.Centos7安装DockerCompose

DockerCompose可以帮助我们快速部署分布式应用,无需一个个微服务去构建镜像和部署。

3.1下载

Linux可通过命令下载:

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

3.2修改文件权限

# 修改权限
chmod +x /usr/local/bin/docker-compose

4.Docker镜像仓库

众所周知,dockerHub也是一个镜像仓库,但是如果我们公司或者团队内,不可能把自己制作的镜像上传到公共的平台吧?所以,我们需要一个私有仓库,如何搭建一个私有仓库,这节就教大家

4.1基础仓库

输入如下命令:

docker run -d 
--restart=always
--name registry
-p 5000:5000
-v registry-data:/var/lib/registry
registry

命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。

访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像

4.2图形化界面仓库

输入命令:

version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=(你想要的仓库名字)
- REGISTRY_URL=http://registry:5000
depends_on:
- registry

4.3配置信任地址

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置,客户端上传(push)时,如果不配置信任,就会被拦截,所以我们需要做一些修改

# 打开要修改的文件
vi /etc/docker/daemon.json

然后在原有的字段后,根据json语法,加个逗号和回车,输入:

# 添加内容:
"insecure-registries":["http://xxx.xxx.xxx.xxx(上传被信任的客户机ip或者域名):8080"]

重新加载:

# 重加载
systemctl daemon-reload

重启docker

# 重启docker
systemctl restart docker
免责声明:本文内容来自CSDN>作者 : 稳住,别浪,慢慢来,我能翻,遵循CC4.0 BY-SA版权协议载请附上原文出处链接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://blog.csdn.net/m0_46435741/article/details/121502952?spm=1001.2014.3001.5502如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢:CSDN博主>稳住,别浪,慢慢来,我能翻的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者授权,非商业转载请注明出处。