Debian Docker 安装
Docker 支持以下的 Debian 版本:
- Buster 10
- Stretch 9 (stable) / Raspbian Stretch
Docker Engine-Community 在 x86_64(或 amd64 )armhf,和 arm64 体系结构上受支持。
自动安装
- 使用官方安装脚本
安装命令如下:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
安装 Docker Engine-Community
更新 apt 包索引:
$ sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
建立 docker 用户组:
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
卸载 docker
删除安装包:
sudo apt-get purge docker-ce
删除镜像、容器、配置文件等内容:
sudo rm -rf /var/lib/docker
拉取最新版的 debian 镜像
$ docker pull debian
或者:
$ docker pull debian:latest
后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
$ docker run -itd --name debian debian
启动容器的时候加上“--add-host”把hosts配置上
docker run --add-host=dkdebian:10.180.8.1 -name debian debian
进入容器
docker exec -it debian /bin/bash
改主机名
启动docker容器后,进入容器时发现对应的主机名是一段编码(默认就是container ID前缀),在容器维护时记不住是哪个机器,容易搞错,所以干脆直接改掉,见名知义。
不能直接在容器内修改/etc/hostname文件,因为容器stop/restart后会重置,导致配置丢失,并且容器中服务器也没法reboot无法立即生效,所以需要从根本上解决问题。
具体操作有如下几种:
在docker run的时候,指定hostname
参数即可,这个参数会直接将对应主机名写入机器的/etc/hostname文件中:
docker run -itd --network $netname --hostname $host --name $name yourimage
也可以增加hostname:使用add-host=$hostname:$ip
参数即可,这个参数会在容器内的/etc/hostname
文件中追加一行映射:
docker run -itd --network $netname --add-host=$host:$ip --name $name yourimage
如果是通过docker-compose方式,则需要通过extra_hosts
参数:
# docker-compose.yml
extra_hosts:
- "host1:172.18.0.3"
- "host2:172.18.0.4"