1. 官方脚本
1
2
3
4
|
# 第一条没速度就用第二条
curl -sSL https://get.docker.com/ | sh
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
|
2. 手动安装
前言
我[基本所有的服务](https://www.nodeseek.com/post-50221-1)全都是靠docker+nginx解决,性能上没问题,也不用担心装各种东西把系统环境搞得乱七八糟,甚至相互冲突。docker安装和使用也极为简便。但是我看到有人用1panel装docker再卸载1panel,且不说这样装的docker是不是最新的、官方的、干净的,这不是脱裤子放屁吗。所以我来说说要怎么安装docker。
我只用debian系统举例,实际上这就是官方文档里面的,我复制粘贴稍微修改的,docker官方清清楚楚的给了一步一步的教程
,指路。建议还是按照这个来安装。直接一句一句或者几句一起复制粘贴都可以。
安装依赖
1
2
|
apt update
apt install ca-certificates curl gnupg -y
|
获取仓库
1
2
3
4
5
6
7
8
9
10
11
12
|
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
|
安装主体
1
2
3
4
5
|
apt update
apt install docker-ce docker-ce-cli containerd.io -y
systemctl enable --now docker
|
想要以非root用户运行docker,直接在非root用户下运行
1
|
sudo usermod -aG docker $USER
|
完成。除非你的debian系统有问题(例如缺少重要系统依赖,非官方,已经安装过其他版本docker等等),不然这个步骤不会出任何问题。最新的docker早就自带docker compose,命令也是docker compose
,不用装docker-compose了。其他系统其实一样的,官网有。
3. 常用命令
针对容器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 启动容器
docker start Name/ID
# 停止容器
docker stop Name/ID
# 杀死容器
docker kill Name/ID
# 删除容器
docker rm Name/ID
# 显示正在运行的容器:
docker ps
# 显示全部容器:
docker ps -a
# 进入容器内部
docker exec -it NAME /bin/sh
or
docker exec -it ID /bin/sh
|
针对镜像
1
2
3
4
5
6
7
8
9
10
11
|
# 检索 image
docker search image-name
# 下载 image
docker pull image-name
# 显示全部镜像:
docker images
# 删除镜像
docker rmi ID
|
保存和加载镜像
1
2
3
4
5
|
# 保存镜像到一个 tar 包
docker save image-name:image-tag -o file-path.tar
# 加载一个 tar 包格式的镜像
docker load -i file-path.tar
|
清理相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 清理未使用image
docker image prune
# 清理已经停止的容器
docker container prune
# 清理不再使用的数据卷
docker volume prune
# 清理Build Cache
docker builder prune
# 清理所有多余占用,不会影响运行容器,但慎用
docker system prune
|
4. 其他技巧
4.1 Docker 离线包优雅 pull 方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 先在国外vps 下载镜像
docker pull hello-world:latest
# 导出镜像
docker save hello-world:latest | gzip > hello.tar.gz
# 放到网站 根目录下,例如 https://lyvba.com/hello.tar.gz
# 导入镜像
wget -q -O - https://lyvba.com/hello.tar.gz | docker load
# 其他测试命令
docker rmi -f hello-world
docker images
docker run hello-world
|