Docker安装
卸载历史版本
apt-get remove docker docker-engine docker.io containerd runc
whereis docker # 确保没有和docker相关的文件
安装依赖
apt install apt-transport-https ca-certificates curl gnupg lsb-release
安装GPG证书
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
写入软件源信息
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
安装
chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg
apt-get update
apt-cache madison docker-ce # 查询存储库中可用的版本,可以安装时指定
apt-get install docker-ce # Docker守护进程(=5:23.0.5-1~debian.11~bullseye)
apt-get install docker-ce-cli # CLI工具用来远程控制Docker守护进程
启动
1. 启动: systemctl start docker
2. 检查 Docker 是否正在运行: systemctl status docker
3. 开机启动: systemctl enable docker && systemctl restart docker && systemctl status docker
4. 查看安装版本:docker --version
5. 查看基本信息:docker info
设置开机启动 docker
systemctl enable docker
docker info # 基本信息
docker --version # 检查安装版本
使用镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"] #这个地址是自己阿里云帐号工作台分配的
}
EOF
配置国内镜像源
# 创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
{
"registry-mirrors" : [
"https://0b9643e96aef4355b7dcdbef7d013d80.mirror.swr.myhuaweicloud.com",
"https://y4jxiled.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com/",
]
}
# 重启docker服务使配置生效
systemctl daemon-reload
systemctl restart docker
将当前用户加入 docker 用户组
usermod -aG docker $USER && newgrp docker
卸载Docker
卸载软件和依赖
apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
卸载资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
Docker空间清理(清理后在使用docker构建时所有的依赖会重新下载,慎用!)
- 查看:docker system df #可以加-v参数,更详细
- 清理:docker system prune -a
- 如果发现df 和 du不一致
通过 lsof | grep deleted 命令查看那些引用着被删除文件的进程
将这些进程 kill 掉,再看 df 和 du 就一致了
docker常用命令
查看镜像:docker image ls
删除镜像:docker image rm [IMAGE ID] #或者[REPOSITORY:TAG]
导入镜像操作: docker load < xxx.tar
进入镜像:docker run -it [IMAGE ID] #exit退出
docker run 运行容器
docker run -d --rm --name hello_world -v $PWD:/test
1. -d: 后台运行容器,并返回容器ID;
2. --rm:退出容器以后,这个容器就被删除了,方便在临时测试使用
3. --name hello_world: 为容器指定一个名称,不指定名称,docker会默认创建一个名称;
4. -v $PWD:test : 将容器中的目录/test 挂载到 宿主机 当前 目录下
- 查看运行的容器:docker ps -a
- 结束运行的容器:docker stop [CONTAINER ID]
- 删除容器:docker rm [CONTAINER ID]