一、下载docker离线安装包并安装 1.1 下载docker离线安装包 下载合适版本,以linux_x86_64为例下载地址:Index of linux/static/stable/x86_64/ ( docker.com ) 本次下载的是docker-23.0.0.tgz
然后解压缩后有以下文件:
1 2 3 4 5 6 7 8 9 10 11 12 [root@192 docker]# tar -zxvf docker-23.0.0.tgz [root@192 /]# ls -l /docker/ 总用量 179180 -rwxr-xr-x. 1 admin admin 38203392 2月 2 2023 containerd -rwxr-xr-x. 1 admin admin 9752576 2月 2 2023 containerd-shim-runc-v2 -rwxr-xr-x. 1 admin admin 19152896 2月 2 2023 ctr -rwxr-xr-x. 1 admin admin 34498624 2月 2 2023 docker -rwxr-xr-x. 1 admin admin 64941936 2月 2 2023 dockerd -rwxr-xr-x. 1 admin admin 765808 2月 2 2023 docker-init -rwxr-xr-x. 1 admin admin 1945195 2月 2 2023 docker-proxy -rwxr-xr-x. 1 admin admin 14214368 2月 2 2023 runc
1.2然后将这些文件复制到/usr/bin执行文件目录下并赋予执行权限 1 2 3 4 5 6 7 8 9 10 [root@192 docker]# cp /docker/* /usr/bin/ [root@192 docker]# chmod +x /usr/bin/containerd [root@192 docker]# chmod +x /usr/bin/containerd-shim-runc-v2 [root@192 docker]# chmod +x /usr/bin/ctr [root@192 docker]# chmod +x /usr/bin/docker [root@192 docker]# chmod +x /usr/bin/dockerd [root@192 docker]# chmod +x /usr/bin/docker-init [root@192 docker]# chmod +x /usr/bin/docker-proxy [root@192 docker]# chmod +x /usr/bin/runc
1.3启动docker并验证是否安装成功 1 2 3 4 5 6 7 8 [root@192 /]# sudo /usr/bin/dockerd & [1] 26695 [root@192 /]# INFO[2023-12-11T01:18:51.209522829+08:00] Starting up [root@192 /]# docker -v Docker version 23.0.0, build e92dd87 [root@192 /]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
看到docker版本号即为安装成功
1.4配置docker开机自启动 打开终端并以管理员身份登录到目标机器。检查系统是否已经安装了 systemd
服务管理器。大多数现代 Linux 发行版都使用 systemd
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@192 /]# systemctl --version systemd 219 +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOM //创建docker.service文件 [root@192 system]# vim /etc/systemd/system/docker.service //添加以下内容 [Unit] Description=Docker Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/dockerd Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity [Install] WantedBy=multi-user.target
保存并关闭docker.service
文件,先停止docker服务进程在执行以下操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //执行以下命令启用 Docker 服务: [root@192 system]# systemctl enable docker.service //执行以下命令启动 Docker 服务: [root@192 system]# systemctl start docker.service //执行以下命令检查 Docker 服务的状态: [root@192 ~]# systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since 一 2023-12-11 02:22:27 CST; 28s ago Docs: http://docs.docker.com Main PID: 4166 (dockerd-current) Tasks: 17 CGroup: /system.slice/docker.service ├─4166 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr... └─4171 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/contai...
二、离线安装image 2.1准备离线安装镜像 先在线环境中准备 Docker 镜像,在可联网的环境中使用 docker pull
命令下载所需的 Docker 镜像。拉取之后可以查看,之后使用docker save -o image.tar image:tag
将镜像保存为存为 tar 归档文件,再上传到离线安装的服务器环境中去
1 2 3 4 5 6 7 8 9 10 11 12 [root@iZbp11pk9q75cmizeab62bZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest eea7b3dcba7e 3 months ago 187MB mysql 8.0.31 7484689f290f 12 months ago 538MB bladex/sentinel-dashboard latest aa398704ebd3 3 years ago 147MB [root@iZbp11pk9q75cmizeab62bZ ~]# docker save -o mysql_8.0.31.tar mysql:8.0.31 [root@iZbp11pk9q75cmizeab62bZ docker]# ll 总用量 602828 drwxrwxr-x. 2 admin admin 146 2月 2 2023 docker -rw-r--r--. 1 root root 550466048 12月 11 02:28 mysql_8.0.31.tar docker save -o image.tar image:tag
2.2 离线拉取镜像 使用docker load -i image.tar
将归档文件mysql镜像安装使用docker images
验证镜像是否拉取成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@192 docker]# docker load -i /docker/mysql_8.0.31.tar d3cc7b6aa7bc: Loading layer [==================================================>] 109.2MB/109.2MB a7f421510691: Loading layer [==================================================>] 11.26kB/11.26kB 6ac2db160c6c: Loading layer [==================================================>] 2.293MB/2.293MB 7fe65049a2a9: Loading layer [==================================================>] 13.92MB/13.92MB da1824686db3: Loading layer [==================================================>] 7.168kB/7.168kB d410d4efd0e7: Loading layer [==================================================>] 3.072kB/3.072kB 60c4dab21dc3: Loading layer [==================================================>] 178.4MB/178.4MB d00057f89692: Loading layer [==================================================>] 3.072kB/3.072kB 2f42ce9d7b80: Loading layer [==================================================>] 246.5MB/246.5MB 8408fed6a9d6: Loading layer [==================================================>] 17.41kB/17.41kB 336175ddf157: Loading layer [==================================================>] 1.536kB/1.536kB Loaded image: mysql:8.0.31 [root@192 docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0.31 7484689f290f 12 months ago 538MB
三、docker-compose安装 3.1下载docker-compose并安装 Docker Compose 是Docker的组装工具,用于创建和调试多个Docker容器,并在同一个Docker主机上运行它们。Docker Compose基于YAML文件,描述多个容器之间的相互关系,以及每个容器所需要的配置和环境变量。
Docker Compose和Docker版本对应关系:https://docs.docker.com/compose/compose-file/compose-file-v3/
Docker Compose下载地址:Releases · docker/compose ( github.com )
将下载的docker-compose-linux-x86_64
文件上传到离线服务器移动目录改名授权后使用docker-compose --version
看到版本号即安装成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@192 docker]# ll 总用量 660820 drwxrwxr-x. 2 admin admin 146 2月 2 2023 docker -rw-r--r--. 1 root root 66824010 12月 11 01:04 docker-23.0.0.tgz -rw-r--r--. 1 root root 59383631 12月 11 02:54 docker-compose-linux-x86_64 -rw-r--r--. 1 root root 550466048 12月 11 02:28 mysql_8.0.31.tar //将docker-compose-linux-x86_64文件移动到/usr/local/bin/目录下并改名 [root@192 docker]# sudo mv /docker/docker-compose-linux-x86_64 /usr/local/bin/docker-compose //授予执行权限 [root@192 docker]# chmod +x /usr/local/bin/docker-compose //验证是否成功 [root@192 docker]# docker-compose --version Docker Compose version v2.20.3
3.2docker-compose启动 对已经拉取的mysql:8.0.31
镜像使用docker-compose
启动
创建一个名为 docker-compose.yml
的文件,并在其中定义服务配置,使用离线拉取的mysql:8.0.3
镜像启动容器,文件内容不做讲解,文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 version: '3.0' 2 services: 3 mysql: 4 image: mysql:8.0.31 5 container_name: mysql 6 restart: always 7 ports: 8 - 3306 :3306 9 environment: 10 MYSQL_ROOT_PASSWORD: password 11 volumes: 12 - /docker/mysql/data:/var/lib/mysql 13 networks: 14 - mynetwork 15 16 networks: 17 mynetwork:
使用命令docker-compose up -d
启动使用docker-compose ps
验证,看到容器启动表示成功,进入容器内容执行命令检验
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [root@192 docker]# docker-compose up -d [+] Running 2/2 ✔ Network docker_mynetwork Created 0.1s ✔ Container mysql Started 0.1s [root@192 docker]# docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS mysql mysql:8.0.31 "docker-entrypoint.s…" mysql 5 minutes ago Up 6 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp [root@192 docker]# docker-compose exec mysql mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.31 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec)mysql>
用navicat连接工具测试成功