以下是Docker的两种安装方式,其中第一种方式,是采用拷贝Docker官方命令到/usr/bin下的方式,这种方式比较简单,可离线,对于不同系统的安装方式皆大同小异,比较适合测试及临时使用等;第二种的话,从官方源在线安装,该安装方式比较完整,不易出现莫名其妙的问题。
一、离线安装docker
1、将docker软件包上传到服务器后解压
[root@C7 ~]# ls anaconda-ks.cfg docker-20.10.9.tgz [root@C7 ~]# tar -zxvf docker-20.10.9.tgz 2、将docker相关命令拷贝到/usr/bin/下,方便直接运行命令
cp docker/* /usr/bin3、启动docker守护程序
dockerd &4、验证是否安装成功,正常打印版本信息则安装成功
docker info5、将docker注册成系统服务(先kill docker服务后,再执行)
ps -ef | grep dockerd kill -9在/usr/lib/systemd/system/下创建docker.service文件,写入内容如下:
vim /usr/lib/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 --graph=/data/dockerlib ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target #ExecStart字段处可以更改添加docker的数据目录位置,如ExecStart=/usr/bin/dockerd --graph=/data-1/lib/docker,如果采用默认数据存储路径的话,则不用加--graph及后边的参数6、启停及开机自启
systemctl start/stop docker systemctl enable/disable docker
二、在线完整安装docker
对于Debian或Ubuntu系统:
1.更新你的包索引:
sudo apt-get update2.安装Docker的必要依赖:
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release3.添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg4.使用以下命令来设置稳定版仓库:
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null5.再次更新你的包索引:
sudo apt-get update6.安装最新版本的Docker Engine和containerd:
sudo apt-get install docker-ce docker-ce-cli containerd.io完成这些步骤后,你应该有一个通过官方渠道安装并正确配置的Docker环境。
7.验证安装
安装完成后,你可以通过运行hello-world镜像来验证Docker是否正确安装:
sudo docker run hello-world这个命令会从Docker Hub拉取一个测试镜像并运行,如果安装正确,你应该能看到测试消息的输出。
通过这种方式安装Docker可以确保软件的稳定性和安全性,同时让Docker的更新和管理更加容易。
#如果有更改默认数据存储位置的需求
更换docker数据默认存储位置
离线安装的docker可以直接在service里文件修改。下面是在线安装的docker,更改docker数据默认存储位置的方法
-----
方法 1: 修改 Docker 服务文件
停止 Docker 服务:
sudo systemctl stop docker备份 Docker 的默认 systemd 服务文件(以防需要恢复):
sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak编辑 Docker 服务文件: 打开
/lib/systemd/system/docker.service
文件进行编辑:sudo vim /lib/systemd/system/docker.service在
[Service]
部分,找到ExecStart=
行,修改或添加以下内容,将/new/path/to/docker
替换为你的新 Docker 数据目录路径:ExecStart=/usr/bin/dockerd -g /new/path/to/docker -H fd:// --containerd=/run/containerd/containerd.sock注意:
-g
或--graph
选项现在已经被 Docker 弃用,取而代之的是--data-root
,但-g
在许多系统上仍然可用。重新加载 systemd 配置:
sudo systemctl daemon-reload启动 Docker 服务:
sudo systemctl start docker方法 2: 使用 Docker daemon 配置文件
停止 Docker 服务:
sudo systemctl stop docker创建或编辑 Docker daemon 配置文件: 如果文件
/etc/docker/daemon.json
不存在,则创建它。如果已存在,请进行编辑:sudo vim /etc/docker/daemon.json添加或修改以下内容,将
/new/path/to/docker
替换为你的新 Docker 数据目录路径:{ "data-root": "/new/path/to/docker" }启动 Docker 服务:
sudo systemctl start docker验证配置: 重新启动 Docker 服务后,你可以通过检查 Docker 的信息输出来验证新的数据目录是否正在使用:
sudo docker info | grep "Docker Root Dir"这应该会显示你新设置的路径。
注意事项
在更改 Docker 数据目录之前,确保新的目录存在并且具有适当的权限。
如果你已经有在运行的容器或镜像,你可能需要手动移动这些数据到新的位置,或者重新创建它们。
使用 Docker daemon 配置文件方法可以避免在 Docker 的未来更新中丢失自定义的服务文件更改。
选择适合你环境的方法来更改 Docker 的数据存储位置,并根据需要调整步骤中的文件路径和命令。