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

相关推荐
luoqice11 小时前
linux下安装rtsp流媒体服务器
linux·音视频
学困昇11 小时前
Linux IPC 详解:匿名管道、命名管道、共享内存与信号量
linux·运维·服务器·c语言·c++·人工智能
汽车搬砖家12 小时前
VM Fusion安装Ubuntu系统
linux
AI小小怪12 小时前
保姆级教程:Ubuntu 22.04 安装 NVIDIA GPU 驱动 + CUDA 12.6(RTX 3080 显卡)
linux·nvidia·cuda
Embedded-Xin12 小时前
ROS2进阶——消息服务质量QOS策略
linux·机器人·嵌入式
WAIT_TIME12 小时前
基于 Docker 快速构建 MySQL InnoDB Cluster 高可用集群与 Router 读写分离
mysql·docker·集群·innodb cluster
Embedded-Xin12 小时前
ROS2进阶—ROS2生命周期节点
linux·机器人·自动驾驶·嵌入式
TYKJ02312 小时前
服务器带宽的"独享"和"共享"到底差在哪?从原理到实测讲清楚
运维·服务器·后端
比昨天多敲两行12 小时前
Linux.基础I/O
linux
Irissgwe12 小时前
三、Socket 编程 TCP
linux·网络·tcp·socket编程