Docker镜像与容器的基本操作

目录

一. Docker基本命令

1. 查看镜像

2. 查看所有状态容器

3. run指令

4. 查看docker版本命令

5. 查看docker信息

6. docker帮助命令文档

二. Docker 镜像操作

1. 搜索镜像

2. 下载镜像

3. 查看镜像列表

4. 获取镜像信息

5. 添加镜像标签

6. 删除镜像

7. 批量删除镜像

8. 导出/导入镜像

8.1 导出镜像

8.2 导出镜像

三. 容器操作

1. 查询所有容器运行状态

2. 创建容器

3. 启动容器

3.1 一次性执行

4. 查看容器ip地址

5. 进入容器

5.1 一次性进入

5.2 永久性进入

6. 容器导出/导入

6.1 导出

6.2 导入

7. 删除容器

8. 查看docker消耗的资源状态


一. Docker基本命令

1. 查看镜像

#查看下载到本地的所有镜像
docker images

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    605c77e624dd   6 months ago   141MB
--------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像,经过md5方式加密过;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;

2. 查看所有状态容器

docker ps -a    #-a 选项可以显示所有的容器	

--------------------------------------------------------------------------------
CONTAINER ID:容器的ID号
IMAGE:加载的镜像
COMMAND:运行的程序
CREATED:创建时间
STATUS:当前的状态
PORTS:端口映射
NAMES:名称

3. run指令

docker run hello-world

4. 查看docker版本命令

docker version 
docker -v

5. 查看docker信息

docker info
#可以用该命令统计每一个状态的容器有多少个

Client:
 Context:    default 
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.7.1-docker)
  scan: Docker Scan (Docker Inc., v0.12.0)

Server:
 Containers: 1  #容器连接数量
  Running: 0    #正在运行的容器数量
  Paused: 0     #暂停的容器数量
  Stopped: 1    #停止的容器数量
 Images: 2      #统计的镜像数量
 Server Version: 20.10.12   #docker版本
 Storage Driver: overlay2   #存储引擎,早期有一段用的是aufa存储引擎,可以把多个目录叠在在一起后挂载到同一个目录一下
  Backing Filesystem: xfs   #后端的文件系统
  Supports d_type: true         
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs   #linux中资源控制,资源管理的驱动:cgroupfs 
 Cgroup Version: 1    
 Plugins:  #插件
  Volume: local  #镜像默认保存位置。可以不保存在本地,docker是以引擎的方式架设在linux之上的。
  Network: bridge host ipvlan macvlan null overlay  #所支持的默认的网络类型。bridge(桥接)、host(主机)、ipvlan(三层模式划分vlan)、macvlan(二层模式划分vlan)、null(躺平:不与别人交互)、overlay(叠加网络)
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive  
 Runtimes: io.containerd.runc.v2   io.containerd.runtime.v1.linux runc  #运行时
 Default Runtime: runc  #默认运行时的版本
 Init Binary: docker-init
 containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc version: v1.0.2-0-g52b36a2
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-693.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 4   #总计cpu
 Total Memory: 1.718GiB #总计内存
 Name: docker
 ID: DT7Y:MDZR:NVOS:NQBJ:C2RV:L5IS:OSLD:E3DG:3PSN:EJDH:ZYMU:42HS
 Docker Root Dir: /var/lib/docker  #docker家目录
 Debug Mode: false
 Registry: https://index.docker.io/v1/  #默认仓库
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:  
  https://4abdkxlk.mirror.aliyuncs.com/
 Live Restore Enabled: false

6. docker帮助命令文档

docker --help

二. Docker 镜像操作

1. 搜索镜像

#格式:docker search 关键字
#示例: 
docker search nginx 
docker search centos:7
——> 同时我们也可以自己制作镜像推送到docker hub上

2. 下载镜像

#格式:docker pull 仓库名称[:标签]
#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。
docker pull centos:7
docker pull nginx

3. 查看镜像列表

docker images

4. 获取镜像信息

#格式:docker inspect  镜像ID
#示例:查看nginx镜像信息
docker insect 605c77e624dd

​​​​

5. 添加镜像标签

#格式:docker tag 名称:[旧标签] 新名称:[新标签]
#示例:
docker tag nginx:latest nginx:lnmp  #给nginx打上标签lnmp,原来的标签是latest

6. 删除镜像

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

7. 批量删除镜像

#docker images -q 可以加载镜像id
#批量删除所有镜像
docker rmi `docker images -q`
#批量删除nginx镜像
docker rmi `docker images|grep "nginx"`

8. 导出/导入镜像

#导出镜像
#格式:docker save -o 存储文件名 存储的镜像
docker save -o nginx_v1 nginx:latest	 #存出镜像命名为nginx存在当前目录下
scp nginx_v1 @root:192.168.59.111:/opt   #将导出的镜像以scp方式导到别的服务器上

#导入镜像,可以异地导入,但是必须要有docker引擎,并且版本不可以差太多
#格式:docker load < 存出的文件
docker load < nginx_v1 

8.1 导出镜像

8.2 导出镜像

三. 容器操作

1. 查询所有容器运行状态

docker ps -a

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS    PORTS     NAMES
8b0a7be0ff58   nginx:latest   "/docker-entrypoint.…"   57 seconds ago   Created             inspiring_swanson

容器的ID号	   加载的镜像     运行的程序               创建时间       当前的状态  端口映射  名称

2. 创建容器

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

#格式:docker create [选项] 镜像
#常用选项:
-i:让容器的输入保持打开
-t:让 Docker 分配一个伪终端

#示例:
docker create -it nginx:latest /bin/bash

3. 启动容器

#格式:docker start 容器的ID/名称
docker start b2a57b3ea48a
docker ps -a

3.1 一次性执行

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

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

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

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

示例1

示例2

示例3

4. 查看容器ip地址

#格式:docker inspect 容器id 
docker ps -a   #先查看运行时容器的id
docker inspect ba8d61d35e32

5. 进入容器

#需要进入容器进行命令操作时,可以使用 docker exec 命令进入运行着的容器。

#格式:docker exec -it 容器ID/名称 /bin/bash
-i 选项表示让容器的输入保持打开;
-t 选项表示让 Docker 分配一个伪终端。

#示例:进入(三种方式)
docker run -itd centos:7 /bin/bash  #先运行容器
docker ps -a 
1. 使用run进入,可以使用ctrl+d退出,直接退出终端
docker run -it centos:7 /bin/bash 

2. 想永久性进入,退出后还是运行状态,用docker exec
docker ps -a 
docker exec -it b99e0771c4e1  /bin/bash

3. docker attach,会通过连接stdin,连接到容器内输入输出流,公在输入exit后终止容器进程(临时性的,不推荐)

5.1 一次性进入

5.2 永久性进入

6. 容器导出/导入

#导出格式:docker export 容器ID/名称 > 文件名
docker export b99e0771c4e1 > centos_7

#导入格式:cat 文件名 | docker import – 镜像名称:标签
法①
docker import centos_7  centos:v1	#导入后会生成镜像,但不会创建容器
法②
cat centos_7 |docker import - centos:v2

6.1 导出

6.2 导入

6.2.1 

 6.2.2

7. 删除容器

#格式:docker rm [-f] 容器ID/名称

1.#不能删除运行状态的容器,只能-f强制删除,或者先停止再删除
docker rm 3224eb044879

2.#已经退出的容器,可以直接删除
docker rm 1270a6791069 

3.#基于名称匹配的方式删除
docker rm -f distracted_panini

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

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

6.#有选择性的批量删除 (正则匹配)
docker ps -a l awk ' {print "docker rm "$1}'l bash

7.#删除退出状态的容器
for i in `dockef ps -a l grep -i exit / awk '{print $1}' '; do docker rm -f $i;done

8. 查看docker消耗的资源状态

docker stats

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值