KVM虚拟化与Docker基础实践-第三章

一、Docker镜像与容器基础操作

Docker镜像操作

经过测试,最近阿里云的加速器有点不稳定,可能出现拉取失败的情况,测试了多个加速器后,更换为以下这个比较稳定的,具体修改操作指令和截图如下(root用户):

tee /etc/docker/daemon.json <<EOF

{

"registry-mirrors": "https://docker.m.daocloud.io"

}

EOF

systemctl restart ddocker

然后我们拉取几个镜像,debian:12,nginx:latest,mysql:5.7,tomcat:latest

docker pull nginx:latest

docker pull mysql:5.7

docker pull debian:12

docker pull tomcat:latest

使用docker images命令查看拉取到的镜像

接着我们导出进行环境为tar文件,这样我们删除后可以快速恢复这些镜像。

docker save -o nginx-latest.tar nginx:latest

docker save -o mysql-5.7.tar mysql:5.7

docker save -o tomcat-latest.tar tomcat:latest

docker save -o debian-12.tar debian:12

导出成功后接下来我们删除这些镜像

docker rmi -f nginx:latest

docker rmi -f mysql:5.7

docker rmi -f tomcat:latest

docker rmi -f debian:12

再尝试从tar文件中恢复这些镜像

docker load -i nginx-latest.tar

docker load -i mysql-5.7.tar

docker load -i tomcat-latest.tar

docker load -i debian-12.tar

回复成功我们输入docker images又可以查看到这些镜像了。

Docker容器操作

接下来我们进入到Nginx 容器操作(创建、端口映射、查看、进入、停止、重启、删除、日志、资源监控),先执行docker run -d --name my-nginx -p 8080:80 nginx:latest创建并骑电动Nginx容器,映射主机8080端口到容器80端口,让后docker ps可以查看运行中的容器,docker ps -a可以查看所有容器包括停止运行的。然后docker exec -it my-nginx bash命令可以进入容器内部(交互式bash窗口),进入后我们可以执行一些基础操作,像ls ,cat /etc/os-release等,输入exit就可以退出了。之后是一些停止和启动命令

docker stop my-nginx

docker start my-nginx

docker restart my-nginx

最后docker logs my-nginx命令可以查看容器日志。

docker stats my-nginx命令可以查看容器资源使用情况,退出使用ctrl+c。

容器服务验证

先执行docker start my-nginx命令确保Nginx容器运行中,然后使用curl测试本地访问curl http://localhost:8080

下面的是Tomcat服务,和Nginx是一样的,只是地址有所改变,具体命令和截图如下:

docker run -d --name my-tomcat -p 8081:8080 tomcat:latest

curl http://localhost:8081

docker logs my-tomcat

docker stats my-tomcat

以上就是所有的内容了,如果你想要在做完后删除的话就继续执行以下命令:

停止所有运行中的容器

docker stop $(docker ps -q)

删除所有已停止的容器

docker container prune -f

删除所有未使用的镜像(悬空镜像)

docker image prune -a -f

删除所有未使用的卷(可选)

docker volume prune -f

查看清理后剩余资源

docker ps -a docker images

相关推荐
Discipline~Hai4 分钟前
Linux网络编程05-sqlite3数据库
linux·c语言·网络·数据库·sqlite·linux应用软件编程
xrlfreedom7 分钟前
大厂 MCP 面试实录:桌面客户端 stdio MCP Server 调试与安全加固方案设计
docker·结构化输出·mcp·提示注入防护
wdfk_prog11 分钟前
Docker 开发环境到底要交付什么:镜像、源码与运行脚本
运维·docker·容器
Huangjin007_12 分钟前
【Linux 系统篇(十七)】进程(五) :进程切换、O(1) 调度算法
linux·运维·服务器
weixin_4643076314 分钟前
linux虚拟机断网
linux·运维·服务器
志栋智能15 分钟前
凌晨3点的告警,如何用AI在5分钟内完成定界?
运维·服务器·数据库·人工智能·自动化
一技安身18 分钟前
【Docker】Docker 和 docker‑compose 的核心区别 + 为什么要单独装 compose
docker·容器·eureka
λqaq731 分钟前
Docker 容器入门基础:Cloud Studio 在线 Linux 环境上手
linux·运维·docker
en.en..34 分钟前
LVGL 普通函数指针与结构体函数指针原理
linux·windows·microsoft
byte轻骑兵35 分钟前
【BlueZ 】Adapter 模块:蓝牙适配器(主设备)的初始化与核心逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙