Debian 10 安装 Docker & Docker Compose
Debian10 上安装部分应用,速度几乎为0,至少需要Debian11以上,512M内存足够。
安装 Docker
1.首先,更新现有的软件包列表:
1 | sudo apt update -y |
2.接下来,安装一些必备软件包,让 apt 通过 HTTPS 使用软件包。
1 | sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y |
3.然后将官方 Docker hub 的 GPG key 添加到系统中。
1 | curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - |
4.将 Docker 版本库添加到APT源:
1 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" |
5.接下来,我们用新添加的 Docker 软件包来进行升级更新。
1 | sudo apt update -y |
6.安装 Docker
1 | sudo apt install docker-ce -y |
7.检查 Docker 是否正在运行
1 | docker --version |
8.重启 docker 并设置开机自启
1 | sudo systemctl enable docker |
9.修改Docker配置(来自烧饼博客)
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训)
1 | cat > /etc/docker/daemon.json <<EOF |
然后重启 Docker 服务:
1 | systemctl restart docker |
在 Docker 中使用镜像
1.要查看已下载到计算机的镜像:
1 | docker images |
2.删除某个docker镜像
1 | docker rmi <your-image-id> |
3.一次删除多张镜像
1 | docker rmi <your-image-id> <your-image-id> ... |
4.一次删除所有镜像
1 | docker rmi $(docker images -q) |
在 Docker 中使用容器
1.要查看所有的容器对象,请使用:
1 | docker ps -a |
docker ps -a -q 分解
docker ps
列出活动中容器。-a
这个选项用于列出所有容器,包括停止运行的。如果没有这个选项,则默认只列出在运行的容器。-q
这个选项列出容器的数字 ID,而不是容器的所有信息。
2.要启动已停止的容器,请使用docker start命令+容器ID或容器名
- 停止所有容器运行:
docker stop $(docker ps -a -q)
3.通过docker rm
命令来删除不用的容器。
- 先使用
docker ps -a
命令查找相关镜像关联的容器的容器ID或名称,然后通过docker rm
命令来删除其删除。- 删除所有停止运行的容器:
docker rm $(docker ps -a -q)
Docker 容器开机自启
1.在使用docker run启动容器时,使用–restart参数来设置:
1 | docker run -m 512m --memory-swap 1G -it -p 58080:8080 --restart=always |
2.如果创建时未指定 –restart=always ,可通过update 命令设置
1 | docker update --restart=always 容器ID或名称 |
安装 Docker Compose
1.安装
1 | export LATEST_VERSION=$(wget -qO- -t1 -T2 "https://api.github.com/repos/docker/compose/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') |
2.查看版本
1 | docker-compose --version |
3.使用 -d 选项以分离模式启动 Compose(后台)
1 | docker-compose up -d |
4.要查看正在运行的 docker 容器,请使用以下命令
1 | docker-compose ps |
5.删除容器
1 | cd /root/data/docker_data/joplin # 进入docker-compose所在的文件夹 |
6.一些 Docker Compose 常用命令:
1 | docker-compose restart # 重启容器 |
7.Docker Compose升级
删除现有容器,拉取最新镜像,然后重新创建容器即可。
1 | docker-compose down |
开机自动启动应用容器
1.方法一、通过 Docker Restart Policy 方法
在 Docker 中,支持 –restart 选项,来控制容器自动启动。在 Docker Compose 中,应该使用 restart 属性
1 | version: '2' |
注意事项:
1)Docker 并不知道这些服务的依赖关系及启动顺序,需要我们精心编排 docker-compose.yaml 文件;
2)Docker Compose 不支持 deploy:restart_policy 属性,该属性只能用于 a swarm with docker stack deploy 环境;
2.方法二、通过进程管理服务(推荐)
该方法本质上还是在执行 docker-compose 命令。
使用 systemd 管理
如下示例,可以根据需要进行设置:
1 | # cat /etc/systemd/system/docker-compose-app.service |
7.卸载 Docker Compose
1 | sudo rm /usr/local/bin/docker-compose |
常见问题
1.出错提示:error storing credentials - err: exit status 1, out: Cannot autolaunch D-Bus without X11 $DISPLAY
解决方法:
1 | sudo apt install gnupg2 pass -y |