在ContOS7下安装Docker以及DockerCompose
时间:2023-10-17 13:07:01
安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费) 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable
test
和 nightly
三个更新频道。
官方网站有各种环境。 这里主要介绍安装指南 Docker CE 在 CentOS上的安装。
1. CentOS安装Docker
Docker CE 支持 64 位版本 CentOS 7、内核版本要求不低于 3.10, CentOS 7 因此,我们正在满足最低核心的要求CentOS 7安装Docker。
1.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
1.2 安装docker
首先,您需要安装虚拟机联网yum工具
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
然后输入命令:
yum install -y docker-ce
docker-ce免费版本的社区。等一会儿,docker可成功安装。
1.3 启动docker
Docker应用程序需要使用各种端口,逐一修改防火墙设置。很麻烦,所以建议直接关闭防火墙!
启动docker一定要关好防火墙!
启动docker一定要关好防火墙!
启动docker一定要关好防火墙!
# 关闭 [root@192 ~]# systemctl stop firewalld # 禁止启动防火墙 [root@192 ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. # 检查防火墙的状态 [root@192 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 7月 16 21:25:32 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... 7月 16 21:25:33 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. 7月 16 21:25:33 localhost.localdomain firewalld[583]: WARNING: AllowZoneDrifting is enabled. This is considered an inse... now. 7月 16 21:49:14 192.168.124.128 systemd[1]: Stopping firewalld - dynamic firewall daemon... 7月 16 21:49:14 192.168.124.128 systemd[1]: Stopped firewalld - dynamic firewall daemon. Hint: Some lines were ellipsized, use -l to show in full.
从命令开始docker:
# 启动docker服务 [root@192 ~]# systemctl start docker # 检查是否已成功启动Docker [root@192 ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since 六 2022-07-16 21:53:02 CST; 22s ago Docs: https://docs.docker.com Main PID: 15345 (dockerd) Tasks: 7 Memory: 32.4M CGroup: /system.slice/docker.service └─15345 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.662962187 08:00" level=info msg="scheme \"uni...=grpc 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.662972965 08:00" level=info msg="ccResolverWr...=grpc 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.662981094 08:00" level=info msg="ClientConn s...=grpc 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.671598626 08:00" level=info msg="Loading cont...art." 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.767447020 08:00" level=info msg="Default brid...ress" 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.821383176 08:00" level=info msg="Loading cont...one." 7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.833770515 08:00" level=info msg="Dockerdaemo...10.17
7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.833943970+08:00" level=info msg="Daemon has c...tion"
7月 16 21:53:02 192.168.124.128 systemd[1]: Started Docker Application Container Engine.
7月 16 21:53:02 192.168.124.128 dockerd[15345]: time="2022-07-16T21:53:02.852543678+08:00" level=info msg="API listen o...sock"
Hint: Some lines were ellipsized, use -l to show in full.
# 查看Docker版本
[root@192 ~]# docker -v
Docker version 20.10.17, build 100c701
# 停止docker服务
[root@192 ~]# systemctl stop docker
# 重启docker服务
[root@192 ~]# systemctl restart docker
1.4 配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
通过以下命令来配置镜像加速:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://u3m23gxa.mirror.aliyuncs.com"]
}
EOF
检测是否已经写入镜像地址:
[root@192 ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://u3m23gxa.mirror.aliyuncs.com"]
}
[root@192 ~]#
重新加载文件并重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
2. CentOS7安装DockerCompose
2.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
如果下载速度较慢,或者下载失败,也可以使用链接(链接:https://pan.baidu.com/s/1QzzPdOUeQS7rKjZYep49hA 提取码:ayin)提供的docker-compose文件:上传到/usr/local/bin/
目录即可。
2.2 修改文件权限
修改文件权限:
# 修改权限
chmod +x /usr/local/bin/docker-compose
2.3 Base自动补全命令:
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
如果这里出现错误,需要修改自己的hosts文件:
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
3. Docker镜像仓库
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
官网地址:https://hub.docker.com/_/registry
3.1 简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。
搭建方式比较简单,命令如下:
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 可以查看当前私有镜像服务中包含的镜像
3.2 带有图形化界面版本
使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:
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
3.3 配置Docker信任地址
我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
depends_on:
- registry
## 3.3 配置Docker信任地址
我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
```sh
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker