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

什么是 Docker
Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
安装 Docker
我们以 kali 为例,简单说说基于 debian 系统下,docker 的安装。只需下面命令进行安装。
apt-get install docker.io

安装完成后,你可以使用以下命令来启动 Docker 服务:
systemctl start docker
#或者
service docker start
开机自启
systemctl enable docker
在设置成自启动时系统会显示如下内容。
我们执行上面内容即可。
/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 run -d --name="hass" -v /root/hassistant:/config -p 8123:8123 homeassistant/home-assistant:latest

参数说明:
-
--name
: 容器名称(自定义) -
-v
: 挂载点位置,如果不设置系统会自动设置,但路径不好找。 -
-p
: 容器对应的端口,不要和主机的端口冲突。
其他常用命令
#启动容器
docker start hass #hass 为容器名称
#重启
docker restart hass
#开机自启
docker update --restart=always hass
本文首发于:一文读懂Docker-999's blog
《一文读懂Docker》留言数:0