• 将docker中的全部文件,使用下边命令,复制到/usr/bin
cp ./docker/* /usr/bin

# 创建docker.service文件
cd /etc/systemd/system/
touch docker.service

# 内容


  • 注意,将其中的ip地址,改成 自己的服务器地址,其它参数不用改。

  • conf


#   将其中的ip地址,改成 自己的服务器地址,其它参数不用改。    --insecure-registry=192.168.205.230
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.205.230
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

为什么要写docker.service

docker.service 是一个 systemd 单元文件,用于管理 Docker 守护进程(Docker daemon)的启动和停止。systemd 是一个在现代 Linux 系统中广泛使用的初始化系统和服务管理器。

编写 docker.service 文件的目的是为了定义 Docker 守护进程的配置和行为,以便 systemd 可以管理它。这样,你就可以使用 systemd 命令来启动、停止、重启和管理 Docker 守护进程。

docker.service 文件通常位于 /etc/systemd/system/ 目录下,它包含了一些配置项,如 Docker 守护进程的启动参数、依赖关系、工作目录等。通过编辑 docker.service 文件,你可以自定义 Docker 守护进程的行为,以满足你的特定需求。

在编写 docker.service 文件后,你可以使用以下命令来管理 Docker 守护进程:

  • 启动 Docker 守护进程:sudo systemctl start docker
  • 停止 Docker 守护进程:sudo systemctl stop docker
  • 重启 Docker 守护进程:sudo systemctl restart docker
  • 查看 Docker 守护进程状态:sudo systemctl status docker

通过 systemd 管理 Docker 守护进程,可以使其在系统启动时自动启动,并提供了更方便的管理方式。

启动docker

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker

逐行解释每一行代码的含义:

  1. chmod +x /etc/systemd/system/docker.service:这条命令给 /etc/systemd/system/docker.service 文件添加可执行权限。这是为了确保 systemd 可以执行该文件来启动 Docker 服务。
  2. systemctl daemon-reload:这条命令告诉 systemd 重新加载配置文件,以便它能够识别到新的或修改过的服务单元文件。在修改了 /etc/systemd/system/docker.service 文件后,需要运行这个命令来使 systemd 生效。
  3. systemctl enable docker.service:这条命令将 Docker 服务设置为开机启动。它会在系统启动时自动启动 Docker 服务。
  4. systemctl start docker:这条命令启动 Docker 服务。它会立即启动 Docker 守护进程,并使其开始运行容器。

通过执行这些命令,你设置了 Docker 服务的可执行权限,重新加载了 systemd 的配置,将 Docker 服务设置为开机启动,并启动了 Docker 服务。这样,你就可以开始使用 Docker 来管理和运行容器了。

/usr/local/bin/ 和 /usr/bin 区别

/usr/local/bin/usr/bin是Linux系统中存放可执行文件的两个常见目录。它们之间的区别如下:

  1. /usr/local/bin:这个目录用于存放本地安装的软件的可执行文件。当您手动从源代码编译并安装软件时,通常会将其安装到/usr/local目录下。/usr/local/bin/usr/local目录中的一个子目录,用于存放这些软件的可执行文件。这样做的好处是,它使得本地安装的软件与系统默认软件分开,避免了对系统软件的干扰。例如,如果您安装了一个自定义版本的某个软件,它的可执行文件可能会放在/usr/local/bin目录下。
  2. /usr/bin:这个目录是系统默认的可执行文件目录。大多数Linux发行版会将系统自带的软件的可执行文件放在这个目录下。当您安装新的软件包时,它的可执行文件通常会被放在/usr/bin目录下,以便所有用户都可以访问和使用这些软件。

总结起来,/usr/local/bin目录用于存放本地安装的软件的可执行文件,而/usr/bin目录用于存放系统默认的软件的可执行文件。

  • 在随便一个目录下,都可以执行以上文件夹里面的可执行文件吗?

不是所有目录下都可以执行/usr/local/bin/usr/bin中的可执行文件。执行一个可执行文件的前提是该文件所在的目录在系统的PATH环境变量中。

PATH环境变量是一个包含多个目录路径的列表,系统会按照列表中的顺序搜索这些目录来查找可执行文件。当您在命令行中输入一个命令时,系统会按照PATH环境变量中的顺序在这些目录中查找对应的可执行文件。

通常情况下,/usr/local/bin/usr/bin都会被包含在PATH环境变量中,因此您可以在终端中从任意目录执行这些目录中的可执行文件。但是,如果您的PATH环境变量没有包含这些目录,或者被其他目录覆盖了,那么您就无法直接执行这些可执行文件。

您可以通过在终端中运行echo $PATH命令来查看当前的PATH环境变量的值。如果需要在其他目录中执行/usr/local/bin/usr/bin中的可执行文件,可以使用完整的文件路径来运行这些文件,例如/usr/local/bin/executable/usr/bin/executable