ubuntu下docker安装与命令和遇到的相关问题(防止自己忘记)

最近的工作需要使用docker,记一下常用指令防止自己忘记

首先是安装

复制代码
sudo apt-get update

#安装依赖
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common


# 阿里源,添加 Docker 的GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


#阿里apt源  设置 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#更新源
sudo apt update
sudo apt-get update

#安装最新版本的Docker
sudo apt install docker-ce docker-ce-cli containerd.io


#查看Docker版本 验证 Docker 安装
sudo docker version

#启动并自动启动 Docker
sudo systemctl status docker
sudo systemctl enable docker


#配置非 root 用户使用 Docker(可选)
sudo usermod -aG docker $USER

然后是使用

复制代码
#列出镜像
docker images

#拉取镜像
docker pull <image_name>

#删除镜像
docker rmi <image_id>



#运行容器  从指定镜像运行一个容器,-d表示后台运行,-p表示端口映射,--name指定容器名称
docker run -d -p 8080:80 --name my_container <image_name>

#列出容器 -a指列出全部容器
docker ps

#停止容器
docker stop <container_id>

#启动已停止的容器
docker start <container_id>

#删除容器
docker rm <container_id>

#进入正在运行的容器  进入容器的终端,-it 选项表示以交互模式运行
docker exec -it <container_id> /bin/bash

然后列出一个今天遇到的问题,从源中拉取镜像的时候,总timeout,各种retry,其实是源不行,但是现在csdn上都说换国内源,亲测我要下的镜像在国内源是不行的,这里需要用国内第三方的源,百度即可

在etc/docker/daemon.json中添加

cpp 复制代码
{
        "registry-mirrors": ["https://lynn520.xyz"]
}

再执行

cpp 复制代码
#重载systemd管理守护进程配置文件
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker

之后就可以拉取镜像了 ,2024.8.27亲测可用

然后还有一个问题,就是linux下var空间在分盘的时候磁盘空间分小了,导致爆内存,部署项目失败,甚至之后开不开机

这里采取方案是重启后选择ubuntu高级选项,选择带有"(recovery mode)"的选项进入恢复模式,在恢复模式下,通常会有一个root shell选项,允许你以root用户身份登录系统,进去后就熟悉了,

cpp 复制代码
du -h #du(disk usage)可以查看目录下各个文件或子目录的内存
cpp 复制代码
sudo du -sh /var/lib/* | sort -hr

发现是/var/lib/docker/overlay2占用太多,然后就是清理文件,至少先开机啊,查了一圈,觉得还是暴力删除所有镜像和容器吧,大家顺带记一下前两个命令吧。

cpp 复制代码
#删除所有停止的容器:
docker container prune

#删除未被使用的镜像
docker image prune

#删除所有未使用的数据(包括镜像、容器、数据卷和网络):
docker system prune -a

(但大家千万不要像我一样做,因为我内部只有一个镜像)

相关推荐
Cosolar1 小时前
LlamaIndex索引类型全解析:原理与实战指南
运维·服务器
方便面不加香菜4 小时前
Linux--基础IO(一)
linux·运维·服务器
鼎讯信通6 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..6 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
杨浦老苏7 小时前
开源多用户图书追踪系统LibrisLog
docker·群晖·收藏管理
跨境数据猎手7 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA8 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
会Tk矩阵群控的小木8 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
赵渝强老师8 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
鹤落晴春8 小时前
【K8s】配置存储卷
云原生·容器·kubernetes