侧边栏壁纸
博主头像
seems 博主等级

学习博客

  • 累计撰写 62 篇文章
  • 累计创建 41 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

docker 离线安装

seems
2025-02-20 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

在生产环境中,服务器一般是在内网环境下,所以这里记录离线安装docker以及本地docker镜像制作和加载。

一.下载docekr安装包

https://download.docker.com/linux/static/stable/

#通过uanme -m查看服务器架构
[root@localhost ~]# uname -m 
x86_64
#选择x86_64目录下对应的版本
https://download.docker.com/linux/static/stable/x86_64/docker-27.5.0.tgz

二.安装docker

1.上传docker压缩包到服务器并解压

[root@localhost opt]# ls
docker-27.5.0.tgz
[root@localhost opt]# tar -zxvf docker-27.5.0.tgz
docker/
docker/runc
docker/containerd
docker/docker-init
docker/dockerd
docker/containerd-shim-runc-v2
docker/docker-proxy
docker/docker
docker/ctr
[root@localhost opt]# ls
docker  docker-27.5.0.tgz

2.将docker可执行文件移动到环境变量路径

# 通过该命令可以看到当前的环境变量
[root@localhost opt]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
# 将非系统自带的可执行文件放到/usr/local/bin/目录下
[root@localhost opt]# mv docker/* /usr/local/bin/

3.使用systemd管理docker服务

创建服务文件docker.service

cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target

[Service]
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=512
TimeoutSec=0
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
EOF
# 重新加载服务配置文件
systemctl daemon-reload
# 启动docker服务
systemctl start docker
# 开机自启docker服务
systemctl enable docker

三、安装docker compose

1.下载地址

https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-linux-x86_64

2.上传到服务器

[root@localhost opt]# ls docker-compose-linux-x86_64
docker-compose-linux-x86_64

3.移动到docker插件目录下

[root@localhost opt]# mkdir -p /usr/local/lib/docker/cli-plugins/
[root@localhost opt]# chmod +x docker-compose-linux-x86_64
[root@localhost opt]# mv docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose

4.验证

[root@localhost opt]# docker compose version
Docker Compose version v2.32.4

四、镜像的导入和导出

1.从能联网的机器拉取需要的镜像

#我这里拉取了nginx:1.27
[root@localhost ~]# docker pull nginx:1.27
1.27: Pulling from library/nginx
af302e5c37e9: Pull complete
207b812743af: Pull complete
841e383b441e: Pull complete
0256c04a8d84: Pull complete
38e992d287c5: Pull complete
9e9aab598f58: Pull complete
4de87b37f4ad: Pull complete
Digest: sha256:0a399eb16751829e1af26fea27b20c3ec28d7ab1fb72182879dcae1cca21206a
Status: Downloaded newer image for nginx:1.27
docker.io/library/nginx:1.27
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        1.27      9bea9f2796e2   8 weeks ago   192MB

2.导出镜像

#将nginx:1.27导出到本地,名称为nginx:1.27:tar
[root@localhost ~]# docker save -o nginx:1.27.tar nginx:1.27
[root@localhost ~]# ls
anaconda-ks.cfg  nginx:1.27.tar

3.上传镜像到不能联网的docker服务器并导入镜像

[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@localhost ~]# ls
anaconda-ks.cfg  nginx:1.27.tar
#导入nginx:1.27镜像
[root@localhost ~]# docker load -i nginx\:1.27.tar
f5fe472da253: Loading layer [==================================================>]  77.83MB/77.83MB
88ebb510d2fb: Loading layer [==================================================>]    118MB/118MB
943132143199: Loading layer [==================================================>]  3.584kB/3.584kB
32c977818204: Loading layer [==================================================>]  4.608kB/4.608kB
541cf9cf006d: Loading layer [==================================================>]   2.56kB/2.56kB
58045dd06e5b: Loading layer [==================================================>]   5.12kB/5.12kB
b57b5eac2941: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:1.27
#查看
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        1.27      9bea9f2796e2   8 weeks ago   192MB

4.运行nginx容器测试

#运行nginx容器
[root@localhost ~]# docker run --name nginx -p 80:80 -d nginx:1.27
e5fabdea277c467e910a767d4f295cec4c19b5b6fda52a7b336d7e7c8c2f8a32
#查看当前运行的容器
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS         PORTS                               NAMES
e5fabdea277c   nginx:1.27   "/docker-entrypoint.…"   3 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
#访问测试
[root@localhost ~]# curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.27.3
Date: Wed, 22 Jan 2025 07:06:14 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 26 Nov 2024 15:55:00 GMT
Connection: keep-alive
ETag: "6745ef54-267"
Accept-Ranges: bytes

0

评论区