镜像和容器的管理

一、镜像的管理

  1. 获取镜像并生成相关容器
bash 复制代码
# 拉取镜像
docker pull alpine
# 默认是latest,也就是最新版本,也可指定版本(在镜像名后边加":版本号")
# 或者
# 从主机中导入镜像到docker中
docker image load -i /test

#生成容器
docker run -it alpine
# 默认让容器执行bash 命令,也可以在容器名后边直接写想要让容器运行的命令
# -it 表示容器要交互式运行
  1. 删除镜像,导出镜像
bash 复制代码
# 查看运行过的容器(无论是否在运行中)
docker ps -a 
# 删除基于alpine 的容器
docker rm 容器id
# 删除alpine 镜像(可以使用id 也可以使用名称,id可以是部分也可是全部)
docker rmi alpine
# 被删除的镜像不能有依赖其产生的容器

# 批量删除镜像
docker rmi `docker images -aq `
# 或者
docker rmi $(docker images -aq)

# 导出镜像到主机的指定目录/test文件夹中
docker image save alpine > /test
  1. 查看镜像的信息
bash 复制代码
# 查看所有的镜像
docker images
docker image ls
# 以上两种的写法是显示出的内容是一致的

# 查看指定镜像
docker image 镜像名称

# 查看全部镜像的id(-q)
docker images -q

#格式化显示镜像
docker images --format "{{.ID}}--{{.Repository}}"
# 写作格式:docker images --format "{{.列名}}自己写的,随便啥符号都行{{.列名}}"
# 以表格的形式显示镜像
docker images --format "table{{.ID}}--{{.Repository}}"

# 查看镜像的详细信息
docker image inspect 镜像id

向dockerhub中搜索指定镜像

bash 复制代码
docker search 镜像名

二、容器的管理

docker run 表示创建+启动的命令

docker run 镜像名(如果镜像不存在本地,则会在线去下载该镜像)

注意:容器内的进程必须处于前台运行的状态,否则容器就会直接退出。但容器的运行可以在后台。注意区分

实例:

bash 复制代码
docker run ubuntu:20.04
# 这个写法,会产生独立的容器记录。因为容器内没有程序在运行,因此容器直接关闭
docker run -it ubuntu:20.04 bash 
# 这是正确的写法,以交互的方式运行ubuntu20.04,且在容器内执行bash

docker run ubuntu:20.04 ping baidu.com 
# 启动ubuntu20.04容器,在容器内执行ping百度的命令,这个命令是在前台运行的,成功的卡住了终端
docker run -d ubuntu:20.04 ping baidu.com
# docker ps可以看到的容器;-d 参数,让容器在后台跑着(相对宿主机而言),容器中的程序在容器的前台运行,因此容器没有挂

# 查看至今为止容器内的所有日志
docker logs 容器id  
# -f 表示刷新容器日志
docker logs -f 容器id 
# 可配合管道使用 docker logs 容器id  | tail -5

docker exec -it 容器id bash
# 进入正在运行的容器空间内(exec大概率配合-it,进入容器内要交互式地做操作) 

docker container inspect 容器id
# 查看容器的详细信息,用于高级调试。显示json数组:容器运行状态,容器管理的数据

docker port 容器id
# 查看容器内的端口转发情况:

docker commit 容器id  新的镜像名
# 容器的提交
# 运行基础的ubuntu:20.04, 在容器里装something,然后提交新的镜像
# 新的镜像,再运行出的容器,默认就携带something了

docker info
# 查看docker服务的信息
  • 在运行容器时,常用的参数总结
run常用的参数 含义
-it 以交互的方式运行容器
-d 将容器运行到后台
--rm 容器结束后自动删除容器
-p 宿主机端口:容器内暴露的端口 容器是独立的网络空间,自己的ip和端口,因此在主机上查看运行的时候需要将端口映射到主机的端口
--name 设置容器的名字
-P 随机端口映射,随机访问主机的空闲端口(0-65535)映射到容器内打开的端口
-v 主机上文件夹的绝对路径: 虚拟机上文件夹的绝对路径 将主机上文件夹的所有文件映射到虚拟机的指定文件夹中(之间文件夹中的内容映射过去了,但是文件夹本身没有到指定文件夹下)
相关推荐
容器魔方1 小时前
中选名单出炉|18位学生入选开源之夏KubeEdge课题,欢迎加入!
云原生·容器·云计算
保持学习ing2 小时前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机
susu10830189113 小时前
Debian 11 Bullseye 在线安装docker
运维·docker·debian
love530love3 小时前
Docker 稳定运行与存储优化全攻略(含可视化指南)
运维·人工智能·windows·docker·容器
人生匆匆4 小时前
docker进入启动失败的容器
运维·docker·容器
退役小学生呀5 小时前
十、K8s集群资源合理化分配
linux·云原生·容器·kubernetes·k8s
魂尾ac7 小时前
Centos Docker 安装(100%成功)
linux·docker·centos
Johny_Zhao14 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple15 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
代码老y17 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器