Docker容器------镜像,容器基础命令

这篇具有很好参考价值的文章主要介绍了Docker容器------镜像,容器基础命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 一,docker镜像

 1,查看docker版本

 2,获取镜像

2.1查看下载到本地的所有镜像 

 2.2 获取镜像信息

2.3 添加镜像标签(上传镜像到仓库) 

 2.4 镜像导出

 2.5 镜像导入

 2.6 ,删除镜像

 2.7 上传镜像

​编辑 二,docker 容器操作

1,查看容器

2,容器创建----docker create

 3,启动容器

 4,进入容器

1,进入容器

2,容器导出

 3,容器导入

 4,批量删除容器/批量删除镜像

 5,动态查看运行容器资源消耗

6,查看docker的日志信息

 三,总结

镜像操作

容器操作

简单面试题


 文章来源地址https://www.toymoban.com/news/detail-449082.html

引言

Docker容器------镜像,容器基础命令

 一,docker镜像

1,docker client客户端连接到了服务器(服务端是以一个守护进程的形式跑在操作系统里面的)restfulapi,典型的c/s架构
2,有docker服务端的守护进程从dockerhub,上下载了镜像(,服务端会先检查本地系统是否有这个镜像)
3,服务端创建了一个新的容器,然后从拉取的这个镜像启动了一个容器,容器执行了脚本、可执行程序,让我们可以查看/使用client
4,docker服务端把这些信息流返回到客户端并展示出来

Docker容器------镜像,容器基础命令

 1,查看docker版本

 docker version#查看docker版本

Docker容器------镜像,容器基础命令

docker info

Docker容器------镜像,容器基础命令

 2,获取镜像

docker pull 镜像名称。例如
docker pull nginx

Docker容器------镜像,容器基础命令

2.1查看下载到本地的所有镜像 

查看镜像列表
docker images——查看当前docker下的下载镜像信息
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小

Docker容器------镜像,容器基础命令

 2.2 获取镜像信息

获取镜像信息
docker inspect 镜像ID

Docker容器------镜像,容器基础命令

2.3 添加镜像标签(上传镜像到仓库) 

docker tag nginx:latest nginx:11.11

Docker容器------镜像,容器基础命令

 删除

删除
docker rmi 镜像名称
docker rmi 镜像标签

Docker容器------镜像,容器基础命令

Docker容器------镜像,容器基础命令

 2.4 镜像导出

docker save -o 文件名+镜像名
实例
docker save -o nginx_docker nginx:11.11

Docker容器------镜像,容器基础命令

 2.5 镜像导入

docker rmi nginx:11.11
docker images
docker load < nginx_docker
docker images

Docker容器------镜像,容器基础命令

 Docker容器------镜像,容器基础命令

 2.6 ,删除镜像

格式:
docker rmi 仓库名称:标签				#当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号					#会彻底删除该镜像

注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

docker rmi nginx:web

Docker容器------镜像,容器基础命令

 2.7 上传镜像

Docker容器------镜像,容器基础命令

 Docker容器------镜像,容器基础命令

 Docker容器------镜像,容器基础命令

docker tag nginx:latest skymarch/nginx:ly			#添加新的标签
docker login									#登录公共仓库
Username:
password:
docker push skymarch/nginx:ly						#上传镜像

 二,docker 容器操作

1,查看容器

docker ps
查看运行的容器
docker ps-a
查看所有容器
##字段说明
CONTALNER ID:容器的id好
image:加载的镜像
command:运行的程序
created:创建时间
status:当前状态
ports:端口映射
names:名称

Docker容器------镜像,容器基础命令

2,容器创建----docker create

docker create 选项  镜像

常用选项
-i:让容器开启表标准输入
-t:让docker分配一个伪终端
-d:后台守护进程方式运行
-it:合起来实现和容器的交互的作用,运行一个交互式会话shell


docker create -it tomcat:latest /bin/bash

Docker容器------镜像,容器基础命令

Docker容器------镜像,容器基础命令

 Docker容器------镜像,容器基础命令

 3,启动容器

#加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

#示例1:
docker run -itd nginx:latest /bin/bash

#示例2:执行后退出
docker run centos:7 /usr/local/bash -c ls -lh /   

#示例3:执行后不退出,以守护进程方式执行持续性任务
docker run -d centos:7 /usr/local/bash -c "while true;do echo lcdb;done" 

实例1

docker run -itd nginx:latest /bin/bash
 

Docker容器------镜像,容器基础命令

 实例2:执行后,退出

docker run centos:7 /usr/local/bash -c ls -lh /

Docker容器------镜像,容器基础命令

 实例3 :执行后不退出,以守护进程方式执行持续性任务

docker run -d centos:7 /usr/local/bash -c "while true;do echo lcdb;done" 
 

Docker容器------镜像,容器基础命令

 如果在生产环境中,这个容器不能删除,但是磁盘被这个容器执行的爆满,导致其它应用不能用,那怎么处理?

答:可以在/var/lib/docker/containers中可以查看到容器的运行文件,找到死循环的容器,进入到有一个json.log文件,这个文件为日志文件,可以使用echo " " >json.log 这个文件中,可以临时解决磁盘压力的问题。直接删除解决不了。但是过段时间,还是会导致压力大,那怎么处理?
可以写一个脚本,定期crontab -e 执行该脚本,相当于定时清空。

 

#!/bin/bash
logs=$(find /var/lib/docker/containers/  -name *-json.log*)
for log in $logs
do
cat /dev/null > $log
done

===##或者====
#设置docker日志文件数量及每个日志大小
vim /etc/docker/daemon.json
{
    "registry-mirrors":["http://f613ce8f.m.daocloud.io"] //加速器
    "log-driver":"json-file",  //定义日志格式,
    "log-opts":{"max-size":"500M","max-file":"3"}  //设置日志文件最大500M,最多3个,如果3个都满了,它会自动删除一个,然后继续装。
}

systemctl damon-reload && systemctl restart docker
#重新加载一下

停止容器

docker stop

Docker容器------镜像,容器基础命令

 4,进入容器

1,进入容器

docker run -it nginx:latest  /bin/bash
exec(容器必须为开启状态)
docker exec -it 容器id /bin/bash

exec和shell是两种运行方式

Docker容器------镜像,容器基础命令

 Docker容器------镜像,容器基础命令

docker run -it 会创建前台进程,但是会在输入exit后终止进程
docker exec -it 会连接到容器,可以向ssh一样进入容器,进行操作,可以通过exit退出容器,不影响容器运行

2,容器导出

docker expore 容器id > 文件名
实例
docker export 容器id > nginx_a

Docker容器------镜像,容器基础命令

 3,容器导入

docker import 导出的文件名字 指定镜像名称
实例
docker import tomdce cetnos:liss1

Docker容器------镜像,容器基础命令

 4,批量删除容器/批量删除镜像

docker rm 【容器id】
#不能删除运行状态的容器,如果要删除,需要加-f强制删除,或者停止后删除

docker rm -f 【容器名称】
#基于容器名称删除

docker rm -f `docker ps -q`
#删除所有运行的容器

docker rm -f `docker ps -aq`
#删除所有的容器

docker ps -a | awk 'NR>=2{print "docker rm "$1}'| bash
#删除所有容器,不包括运行的容器

for i in `docker ps -a |grep -i exit | awk '{print $1}'`;do docker rm -f $i;done
#过滤出关闭状态的容器,并删除

 docker rm 【容器id】
Docker容器------镜像,容器基础命令

 docker rm -f 【容器名称】

Docker容器------镜像,容器基础命令

docker rm `docker ps -aq`

docker ps -a

Docker容器------镜像,容器基础命令

 5,动态查看运行容器资源消耗

docker stats

Docker容器------镜像,容器基础命令

6,查看docker的日志信息

docker logs 【容器ID】
#查看指定容器的日志信息

 三,总结

镜像操作

docker iamges   #查看docker镜像

docker inspect   【id号】  #查镜像的详细信息

docker tag nginx:lastest  nginx:web     #修改docker的标签(见名知意)

#==========删除镜像
docker rmi nginx:web     #删除标签为web的nginx镜像(删除标签指定的镜像)
或者
docker rmi 【镜像id】   #彻底删除该镜像
#注意:如果该镜像一个呗容器使用,正确做法先删除该镜像的所有容器,再删除镜像

#=====导入导出镜像
存储镜像----》将镜像保存为本地文件
docker save -o 【存储文件名】 【存储的镜像】
docker save -o  nginx nginx:latest  #实例(保存本地目录)

导入镜像----》将本地文件导入到容器
docker load < nginx    #存入到容器中
或
docker load -i nginx   #也可以存储到容器中

#=====上传镜像====演示上传阿里云和docker hub
默认上传到docker Hub官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com可以使用docker login命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用docker push命令进行上传。
docker tag nginx:latest  ydq/nginx:web    #修改docker标签
docker iamges
docker login       #登录到docker的hub
docker push  【上传的镜像】    #上传镜像

#=======下载镜像
docker pull nginx   #下载nginx镜像

容器操作

===#先创建后启动
docker create -it nginx:latest /bin/bash    #创建容器

docker ps -a    #查看所有容器
docker ps      #查看运行的容器

docker start 【镜像id】   #启动一个镜像

========#创建并启动
docker run 【镜像名】 /usr/bin/bash -c ls /  #创建一个容器并启动镜像(本地没有将从仓库下载)(运行结束就退出)

docker run -d 【镜像名】 /usr/bin/bash -c "while true;do echo hello;done"
#后台运行(必须要加-d,不然容器无法启动)(会造成cpu100%)

docker run -itd -name test1(名称) 【镜像名】 /bin/bash
#创建容器并持续运行容器(-name:指定名称 )

======#停止容器
docker stop 【容器id】   #容器id用docker ps -a 查看

=====#容器的进入
docker exec -it 【容器id】 /bin/bash  #进入一个启动的容器
或
docker run -it centos:7 bash #不加-d选项会创建容器后直接进入容器,但是退出容器,容器也会停止

=====#本机文件与容器互传
docker cp  ydq.txt  【容器id】:/opt   #将本地文件传到容器中的/opt目录下

docker cp 【容器id】:/opt/ydq.txt /home/ydq2.txt #将容器中的文件拷贝到本地

======#容器的导出导入
docker export 【容器id】 > nginx.tar   #将容器导出到本地
cat nginx.tar |docker import - nginx:web  #将本地导入到容器

======#容器的删除
docker rm [-f] 【容器id】   #删除容器(加-f删除正在运行的容器)

docker ps -a |awk 'NR>=2{print "docker stop" $1}'|bash 
......

简单面试题

#1、如果镜像优化?
有效减少镜像大小(dockerfile 优化方向-》对于部分企业而言,是一种升阶面试题)

#2、怎么看当下有多大号容器,怎么看当下所有容器占用的I/O有多少,占用内存多少?
使用docker stats命令查看

#3、容器有哪些状态?
Docker容器可以有七种状态:
已创建(create)
运行(up)
已暂停(paused)
重新启动(restarting)
已退出(exited)正常退出为(exited(0)),人工干预停止会有(exited(137))
死亡(dead)
迁移(removing)

#4、overlay2由哪几部分组成 ?
LowerDir
MergedDir
UpperDir
WorkDi

 

 

 

 

到了这里,关于Docker容器------镜像,容器基础命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • docker入门(1)----服务/镜像/容器相关命令

    docker入门(1)----服务/镜像/容器相关命令

    官网安装app 命令行安装(但是没有图形界面app) brew install docker 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 容器(Container):镜像(Image)和容器(Container)的关系,就

    2024年02月06日
    浏览(28)
  • docker 常用删除镜像和容器命令记录

    通过如下两个都可以删除镜像: 1 docker rmi [image] 或者: 1 docker image rm [image] 支持的子命令如下: -f, -force : 强制删除镜像,即便有容器引用该镜像; -no-prune : 不要删除未带标签的父镜像;  例子: 1. 想要删除容器,则要先停止所有容器(当然,也可以加-f强制删除,但是不推

    2024年02月12日
    浏览(11)
  • 【Docker系列】容器基础、Docker镜像管理

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 2.1 Docker镜像查找 命令查找 docker官网查找 2.2 Docker镜像管理 拉取MySQL镜像 查看本地镜像 镜像加速(阿里云) Daocloud镜像站加速 镜像删除 2.3 容器

    2024年01月25日
    浏览(11)
  • Docker概念|容器|镜像|命令详细(创建,删除,修改,添加)

    Docker概念|容器|镜像|命令详细(创建,删除,修改,添加)

    Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源 是在Linux容器里运行应用的开源工具 是一种轻量级的”虚拟机“ Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的,可移植的,自给自足的容器。 docker本质就是宿主机的一个进程,

    2023年04月19日
    浏览(14)
  • docker基础3——制作镜像(基于容器)

    docker基础3——制作镜像(基于容器)

    镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。 docker镜像含有启动容器所需要的文件系统及其内容,所以镜像是用于创建并启动容器。 docker镜像采用分层构建机制,最底层为bootfs,其上为rootfs。 bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完

    2024年02月07日
    浏览(48)
  • linux下docker安装、镜像下载、镜像基础操作、容器基础操作

    linux下docker安装、镜像下载、镜像基础操作、容器基础操作

    目录 一、环境准备 1、开启虚拟化 2、关闭防火墙 3、yum仓库获取阿里源(清华、京东都可以) 4、确保能ping到外网 二、安装docker 1、yum安装docker 2、启动docker并设置开机自启 3、安装docker-ce阿里镜像加速器 三、docker基本操作 1、查看版本 2、查看详细信息 四、镜像操作 1、do

    2024年02月06日
    浏览(10)
  • 【云原生】Docker镜像和容器的导入导出及常用命令

    大家好,本文是对 Docker 的镜像和容器的一些操作指令的汇总,比如镜像和容器的导入导出,以及一些在使用过程中的常用命令。希望对大家有所帮助~ 1.1、镜像的导入导出 1.1.1、镜像的保存 通过镜像ID保存 方式一: 例如: 方式二: 例如: 通过镜像 repository 和 tag 保存 例如

    2024年02月02日
    浏览(9)
  • Docker 基础实战:环境搭建、容器、仓库、镜像

    Docker 基础实战:环境搭建、容器、仓库、镜像

    可以使用 docker help 或者 man docker-run 来获取完整的 Docker 命令列表,本文只介绍一些常用的命令与参数。 考虑到安装流程过于繁琐,在 CentOS 中,可以使用官方提供的脚本来快速安装 Docker: 可以从 https://get.docker.com/ 查看支持的操作系统。 当安装完毕后,设置开机自启动 Doc

    2024年02月16日
    浏览(12)
  • docker导入导出镜像、导入导出容器的命令详解以及使用的场景

    这是一对操作,用于处理 Docker 镜像。这个操作会将所有的镜像层以及元数据打包到一个 tar 文件中。然后,你可以使用 docker load 命令将这个 tar 文件导入到任何 Docker 环境中。例如: 这种方式主要用于分享或迁移整个镜像,包括所有版本、标签和历史。 这也是一对操作,用

    2024年02月16日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包