Docker基础
Docker学习笔记——docker核心技术(镜像)
Docker学习笔记——docker核心技术(容器)
Docker学习笔记——docker核心技术(数据)
Docker学习笔记——docker核心技术(网络)
Docker高级实践-Dockerfile
Docker的核心技术内容很多,我们学习则从以下四个方面来介绍Docker的核心技术 镜像、容器、数据、网络
镜像
镜像简介
Docker镜像是什么? 镜像是一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。 通过镜像可以创建一个或多个容器。
搜索、查看、获取
- 搜索镜像
#作用搜索Docker Hub(镜像仓库)上的镜像
#命令格式: docker search [镜像名称]
#命令演示:
$ docker search ubuntu
#NAME:名称
#DESCRIPTION:基本功能描述
#STARS:下载次数
#OFFICIAL:官方
#AUTOMATED:自动的运行
- 获取镜像
#作用:下载远程仓库(如Docker Hub)中的镜像
#命令格式: docker pull [镜像名称]
#命令演示:
$ docker pull ubuntu
$ docker pull nginx
#注释:
#获取的镜像在哪里?
#/var/lib/docker 目录下
#由于权限的原因我们需要切换root用户
#那我们首先要重设置root用户的密码:
:~$ sudo passwd root
#这样就可以设置root用户的密码了。
#之后就可以自由的切换到root用户了
:~$ su
#输入root用户的密码即可。
#当然,如果想从root用户切换回一般用户,则可使用 su -val(一般用户名)
#而当你再次切回到root用户,则只需要键入exit,再次输入exit则回到最初的用户下
#操作下面的文件可以查看相关的镜像信息
:~$ vim /var/lib/docker/image/overlay2/repositories.json
- 查看镜像
#作用:列出本地镜像
#命令格式: docker images [镜像名称] docker image ls [镜像名称]
#命令演示:
$ docker images
#镜像的ID唯一标识了镜像,如果ID相同,说明是同一镜像。TAG信息来区分不同发行版本,如果不指定具体标记, 默认使用latest标记信息
#docker images -a 列出所有的本地的images(包括已删除的镜像记录)
#REPOSITORY:镜像的名称
#TAG :镜像的版本标签
#IMAGE ID:镜像id
#CREATED:镜像是什么时候创建的
#SIZE:大小
重命名、删除
- 镜像重命名
#作用:对本地镜像的NAME、TAG进行重命名,并新产生一个命名后镜像
#命令格式: docker tag [老镜像名称]:[老镜像版本][新镜像名称]:[新镜像版本]
#命令演示:
$ docker tag nginx:latest panda-nginx:v1.0
小提示:当想docker仓库push镜像时,需要镜像名符合 仓库名
/镜像名
:tag名
如:aaa/panda-nginx:v1.0,tag不填默认latest
- 删除镜像
#作用:将本地的一个或多个镜像删除
#命令格式: docker rmi [命令参数][镜像ID] docker rmi [命令参数][镜像名称]:[镜像版本] docker image rm [命令参数][镜像]
#命令演示:
$docker rmi 3fa822599e10
$docker rmi mysql:latest
#注意: 如果一个image_id存在多个名称,那么应该使用 名称:版本 的格式删除镜像
#命令参数(OPTIONS): -f, --force 强制删除
导出、导入
- 导出镜像
将已经下载好的镜像,导出到本地,以备后用。
#作用:将本地的一个或多个镜像打包保存成本地tar文件
#命令格式: docker save [命令参数][导出镜像名称][本地镜像镜像]
#命令参数(OPTIONS): -o, --output string 指定写入的文件名和路径
#导出镜像 :
$docker save -o nginx.tar nginx
- 导入镜像
#作用:将save命令打包的镜像导入本地镜像库中
#导入镜像命令格式:
#$ docker load [命令参数][被导入镜像压缩文件的名称]
#$ docker load < [被导入镜像压缩文件的名称]
#$ docker load --input [被导入镜像压缩文件的名称]
#命令参数(OPTIONS): -i, --input string 指定要打入的文件,如没有指定,默认是STDIN
#导入镜像文件:
$docker load < nginx.tar
#注意:如果发现导入的时候没有权限需要使用chmod命令修改镜像文件的权限
历史、创建
- 查看镜像历史
#作用:查看本地一个镜像的历史(历史分层)信息
#查看镜像命令格式: docker history [镜像名称]:[镜像版本] docker history [镜像ID]
#我们获取到一个镜像,想知道他默认启动了哪些命令或者都封装了哪些系统层,那么我们可以使用docker history这条命令来获取我们想要的信息
$docker history sswang-nginx:v1.0
#IMAGE:编号
#CREATED:创建的
#CREATED BY :基于那些命令创建的
#SIZE:大小
#COMMENT:评论
- 镜像详细信息
#作用:查看本地一个或多个镜像的详细信息
#命令格式: $ docker image inspect [命令参数] [镜像名称]:[镜像版本] $ docker inspect [命令参数] [镜像ID]
#查看镜像详细信息:
$docker inspect nginx
- 根据模板创建镜像
#登录系统模板镜像网站:
#https://download.openvz.org/template/precreated/
#找到一个镜像模板进行下载,比如说ubuntu-16.04-x86_64.tar.gz,地址为: #https://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz
#命令格式: cat 模板文件名.tar | docker import - [自定义镜像名]
#演示效果:
$cat ubuntu-16.04-x86_64.tar.gz | docker import - ubuntu-mini