一文读懂Docker

一篇文章,让你读懂什么是 Docker?

为什么要 Docker

其实在笔者看来,docker 主要是为 “懒人” 提供了方便。如我们在运行某些程序时,需要给其部署相关的环境,如运行 HA 时,需要解决相关 Python 环境。运行都 web 站点时,需要部署 php mysql 等环境。而通过 Dokcer 我们无需部署各类复杂的环境,只需一键启动。

一文读懂Docker - 第1张图片

什么是 Docker

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

安装 Docker

我们以 kali 为例,简单说说基于 debian 系统下,docker 的安装。只需下面命令进行安装。

apt-get install docker.io
一文读懂Docker - 第2张图片

安装完成后,你可以使用以下命令来启动 Docker 服务:

systemctl start docker
#或者
service docker start

开机自启

systemctl enable docker

在设置成自启动时系统会显示如下内容。

一文读懂Docker - 第3张图片我们执行上面内容即可。

/usr/lib/systemd/systemd-sysv-install enable docker

什么是镜像

说简单点,如我们想在 Linux 服务器中运行 win11 系统。我们就需要拉取和系统架构一样的 win11 镜像。我们常用 docker pull 命令来拉取镜像。

需要注意的是,由于某些原因。拉取镜像是非常慢。各种镜像加速源都扑街。下面是笔者找到可用的方法。(随时可能会失效)

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver""json-file",
    "log-opts": {
        "max-size""20m",
        "max-file""3"
    },
    "ipv6"true,
    "fixed-cidr-v6""fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true,
    "registry-mirrors": [
      "https://docker.m.daocloud.io",
      "https://dockerhub.icu",
      "https://docker.anyhub.us.kg",
      "https://docker.1panel.live"
    ]
}
EOF

写入新的配置文件后,需要我们重启 docker

如,我们要拉取 HomeAssistant 的镜像,可以执行下面命令。

docker pull homeassistant/home-assistant:latest

代码中 homeassistant/home-assistant 就是镜像名称。默认是从 Docker Hub 公共镜像源下载。 latest 是镜像的版本,默认为最新版。也可指定如 2023.1.1一文读懂Docker - 第4张图片

创建容器

什么是容器?通俗点讲就是把每个镜像放到箱子中。彼此互不影响。

一文读懂Docker - 第5张图片

如上,我们可以通过下面命令创建容器。

docker run -d --name="hass" -v /root/hassistant:/config -p 8123:8123 homeassistant/home-assistant:latest
一文读懂Docker - 第6张图片

参数说明:

  • --name : 容器名称(自定义)
  • -v : 挂载点位置,如果不设置系统会自动设置,但路径不好找。
  • -p : 容器对应的端口,不要和主机的端口冲突。

其他常用命令

#启动容器
docker start hass #hass 为容器名称
#重启
docker restart hass
#开机自启
docker update --restart=always hass

 

《一文读懂Docker》留言数:0

发表留言