Docker(五):CentOS7离线安装Docker、Docker Compose
CentOS7离线安装Docker、Docker Compose
- 1 概述
- 2 安装
- 2.1 准备工作
- 2.2 安装Docker
- 2.3 安装Docker Compose
- 3 设置Docker镜像源
- 4 Docker Compose小试牛刀
- 5 总结
大家好,我是欧阳方超,公众号同名。
1 概述
在某些情况下,可能无法在联网的环境中安装Docker和Docker Compose,今天详细介绍下如何在CentOS7上离线安装这些工具。
2 安装
2.1 准备工作
下载Docker离线安装包、Docker Compose二进制文件。
访问Docker官方下载页面https://download.docker.com/linux/static/stable/x86_64/下载最新版本的Docker静态安装包,选择合适的版本例如docker-24.0.7.tgz。
访问Docker Compose的GitHub发布页面:https://github.com/docker/compose/releases
下载适合CentOS 7的版本,例如docker-compose-linux-x86_64。
将下载好的文件上传到服务器的适当目录,上传到哪个目录并不重要的,重要的是上传到服务器后对他们怎么进行操作。
2.2 安装Docker
解压Docker包至/usr/bin/下
[xiaoliu@localhost docker]$ sudo tar -zxvf docker-24.0.9.tgz -C /usr/local/
[sudo] password for xiaoliu:
docker/
docker/docker-proxy
docker/docker-init
docker/containerd-shim-runc-v2
docker/dockerd
docker/containerd
docker/docker
docker/runc
docker/ctr
[xiaoliu@localhost docker]$
复制Docker二进制文件到系统目录
[xiaoliu@localhost docker]$ sudo cp /usr/local/docker/* /usr/bin/
创建并配置Docker服务文件
在/etc/systemd/system/目录下创建一个名为docker.service的文件,文件内容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
重新加载系统服务并启动Docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
验证安装:
[xiaoliu@localhost docker]$ docker --version
Docker version 24.0.9, build 2936816
2.3 安装Docker Compose
将docker-compose-linux-x86_64文件上传到CentOS 7服务器的/usr/local/bin/目录下。
重命名并添加执行权限:
[xiaoliu@localhost docker]$ sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
[xiaoliu@localhost docker]$
[xiaoliu@localhost docker]$
[xiaoliu@localhost docker]$ chmod +x /usr/local/bin/docker-compose
创建软链接(可选):
[xiaoliu@localhost docker]$ sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
验证安装:
[xiaoliu@localhost docker]$ docker-compose -v
docker-compose version 1.25.5, build 8a1c60f6
3 设置Docker镜像源
通过离线方式安装Docker后,配置Docker镜像源可以帮助你从指定的镜像仓库拉取镜像,尤其是在无法直接访问Docker Hub的情况下。以下是配置Docker镜像源的步骤:
步骤1:创建或编辑Docker配置文件
在CentOS 7上,Docker的配置文件通常位于/etc/docker/daemon.json。如果文件不存在,可以创建一个。
sudo vim /etc/docker/daemon.json
步骤2:添加镜像源配置
在daemon.json文件中添加以下内容,以配置镜像源。
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
https://docker.m.daocloud.io是一个截止目前可用的镜像源,读者可根据情况调整为其他镜像源。
拉取一个nginx镜像源,测试配置的镜像源是否可用:
[xiaoliu@localhost docker]$ sudo docker pull nginx:perl
perl: Pulling from library/nginx
6e909acdb790: Pulling fs layer
5eaa34f5b9c2: Pulling fs layer
6e909acdb790: Pull complete
5eaa34f5b9c2: Pull complete
417c4bccf534: Pull complete
e7e0ca015e55: Pull complete
373fe654e984: Pull complete
97f5c0f51d43: Pull complete
c22eb46e871a: Pull complete
a7c3ce244335: Pull complete
Digest: sha256:dd9ee5faf2d9b04228a5c962566a9c2735cd343b46aef37626155c88c6fda3e9
Status: Downloaded newer image for nginx:perl
docker.io/library/nginx:perl
4 Docker Compose小试牛刀
既然Docker和Docker Compose都已经安装成功,下面进行一下简单测试。
步骤1:创建一个简单的docker-compose.yml文件,创建一个名为docker-compose.yml的文件,这个文件定义一个简单的nginx服务。
version: '3'
services:
nginx:
image: nginx:perl
container_name: my-nginx
restart: always
ports:
- "8080:80"
version: 指定 Docker Compose 文件的版本。
services: 定义要创建的服务。
nginx: 服务名称。
image: 使用的 Docker 镜像。
container_name: 指定容器的名称。
restart: 设置容器重启策略(这里设置为始终重启)。
ports: 将容器的 80 端口映射到宿主机的 8080 端口。
步骤 2:启动服务
在包含 docker-compose.yml 文件的目录下,打开终端并运行以下命令:
docker-compose up
这个命令会启动 Nginx 服务。如果你想在后台运行,可以加上 -d 参数:
docker-compose up -d
步骤3:访问nginx服务
可以通过浏览器访问http://服务器ip:8080来查看nginx欢迎页。
步骤4:停止和删除服务
可以通过以下命令停止并删除容器
[xiaoliu@bogon testnginx]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a41da91d7463 nginx:perl "/docker-entrypoint.…" About an hour ago Exited (0) 35 seconds ago my-nginx
[xiaoliu@bogon testnginx]$
[xiaoliu@bogon testnginx]$ sudo docker-compose rm
Going to remove my-nginx
Are you sure? [yN] y
Removing my-nginx ... done
或直接使用以下命令停止并删除:
docker-compose down
5 总结
离线服务器安装Docker、Docker Compose不用愁,本篇就给你提供思路,介绍它们的安装与使用,为深入学习容器化技术打下坚实基础。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。