docker镜像和容器
一、镜像
1.介绍
Docker镜像就是一个只读的模版。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统。比如官方镜像centos:7就包含了完整的一套centos:7的最小系统的root文件系统。,相当于容器的“源代码”,docker镜像文件类似于java的类模版,而docker容器实例类似于java中new出来的实例对象。
2.镜像命令
1.docker images

各个选项说明
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签版本号
- IMAGE ID:镜像的ID
- CREATED:镜像创建时间
- SIZE:镜像大小
- 同一仓库源可以有多个TAG标签,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用ubuntu,docker会默认使用ubuntu:latest
- 列出本地主机上的镜像
- 选项
- docker images -a :列出本地所有的镜像(含历史映像层)
- docker images -q :只输出镜像的ID
2.docker pull
docker pull 镜像名
- 下载镜像
- docker pull 镜像名字[:TAG]
- 没有TAG就是最新版,等价于docker pull 镜像名:latest
3.docker search
- docker search [OPTIONS] 镜像名字
OPTIONS说明:
--limit : 只列出N个镜像,默认25个
docker search --limit 5 redis
4.docker system df
- 查看镜像/容器/数据卷所占的空间

5.docker rmi
- docker rmi 镜像名[:TAG]
- 删除镜像
- docker rmi 镜像名[:TAG] 镜像名[:TAG] 镜像名[:TAG]
- 删除多个镜像
- docker rmi $ (docker images -a -q)
- 删除所有未使用的镜像
- -f 强制删除
3.虚悬镜像
- 仓库名、标签都是<none>的镜像

二、容器
1.介绍
1 .从面向对象角度
Docker利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
2. 从镜像容器角度
可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
2.容器命令
1.docker run
- docker run [options] images [command]
- 新建+启动容器
- options:有些是一个减号,有些是两个减号
- --name="容器新名字" 为容器指定一个名称
- -d 后台运行新容器并返回容器ID,也即启动守护式容器(后台运行)
- -i 以交互模式运行容器,通常与 -t 同时使用
- -t 为容器分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互)
- -P 随机端口映射
- -p 指定端口映射
2.docker ps
- docker ps [optinos]
- 列出当前正在运行的容器
- options:
- -a 列出当前正在运行的容器+历史上运行过的
- -l 显示最近创建的容器
- -n 显示最近n个创建的容器
- -q 静默模式,只显示容器编号
3.退出容器
1.exit
- run进去容器,exit退出,容器停止
2.ctrl+p+q
- run进去容器,ctrl+p+q退出,容器不停止
4. docker start
- docker start 容器ID或容器名
- 启动已停止运行的容器
5.docker restart
- docker restart 容器ID或容器名
- 重新启动容器
6. dockr stop
- docker stop 容器ID或容器名
- 停止容器
7.docker kill
- docker kill 容器ID或容器名
- 强制停止容器
8. docker rm
- docker rm [-f] 容器ID
- 删除已停止的容器
- -f 强制删除
- docker rm -f $(docker ps -a -q)
- docker ps -a -q | xargs docker rm
- 一次性删除多个容器
9.启动守护式容器(后台服务器)
- docker run -d 启动容器并进入后台
- docker容器后台运行,就必须有一个前台进程,否则就会退出
- redis
- 前台交互式启动
docker run -it redis:6.0.8
- 后台守护式启动
docker run -d redis:6.0.8(默认以前台模式启动后监听6379端口)
10.docker logs
- docker logs 容器ID或容器名
- 查看容器日志
11.docker top
- docker top 容器ID或容器名
- 查看容器内运行的进程
12.docker inspect
- docker inspect 容器ID或容器名
- 查看容器内部细节
13.进入正在运行的容器并以命令行交互
- docker exec -it 容器ID /bin/bash
或
- docker attach 容器ID
- 区别:
- attach:直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止
- exec:是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止
- 一般用-d后台启动的程序,再用exec进入对应的容器实例
14.docker cp
- docker cp 容器ID:文件路径 主机文件路径
- 从容器内拷贝文件到主机上
15.导入和导出容器
- 导出:
- docker export 容器ID > 容器ID.tar
- 导入:
- docker import 容器ID.tar 镜像名:标签
更多推荐


所有评论(0)