docker
docker 生命周期
快速实践,使用docker,来切换不同的发行版本,内核使用的都是宿主机的内核
#利用docker获取不同的发行版本镜像
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@master ~]# uname -r
3.10.0-1160.71.1.el7.x86_64
root@master ~]# docker pull centos:7.8.2003
[root@master ~]# docker pull ubuntu
#确认当前宿主机发行版本
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
#运行centos7.8.2003发行版
运行centos7.8.2093发行版
#运行容器,且进入容器内
# 参数 解释 -i 交互式命令操作 -t 开启一个终端afb6fca791e 是镜像的id bash 进入容器后,执行的命令
[root@master ~]# docker run -it afb6fca791e0 bash
#查看容器内的发行版本
[root@c680f55253e4 /]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@master ~]# docker run -it ba6acccedd29 bash
root@7d2e5947b269:/#
#查看容器的发行版本
总结:
1.一个完整的系统,是由Linux的内核+发行版,才组成了一个可以使用的完整的系统
2.利用docker容器,可以获取不同的发行版本镜像,然后基于该镜像,运行出各种容器去使用
docker镜像
1.原理
2.原理2
#进入到正在运行的容器内,命令是
[root@master ~]# docker exec -it 8063e8de1ebe bash
获取镜像
1.从dockerhub获取镜像
#1.获取镜像,镜像托管仓库,好比Yum源一样
#默认的docker仓库是,dockerhub,有大量的优质的镜像,以及用户自己上传的镜像 centos容器 vim nginx ... 提交为镜像,上传到dockerhub
docker search 镜像名:tag tag就是具体的标签版本
docker search centos
#查看本地的镜像文件有哪些
[root@master ~]# docker images
[root@master ~]# docker images ls
REPOSITORY TAG IMAGE ID CREATED SIZE
#下载docker镜像
docker pull centos #默认的是 centos:latest
docker pull centos:7.8.2003
#查看docker镜像的存储路径
[root@master ~]# docker info | grep Root
Docker Root Dir: /var/lib/docker
[root@master ~]# ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ -l
#该文件作用是
记录 镜像 和容器的配置关系
#使用不同的镜像,生成容器
#-it 开启一个交互式的终端 --rm 容器退出时删除该容器
[root@master ~]# docker run -it --rm centos bash
2.本地镜像导出、导入
3.私有的docker仓库
查看镜像
#查看具体的镜像
[root@master ~]# docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 22 months ago 141MB
[root@master ~]# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ba6acccedd29 2 years ago 72.8MB
#可以指定具体tag
[root@master ~]# docker images centos:7.8.2003
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.8.2003 afb6fca791e0 3 years ago 203MB
#值列出镜像的id
-q --quiet 只列出id
[root@master ~]# docker images -q
605c77e624dd
7614ae9453d1
ba6acccedd29
5d0da3dc9764
afb6fca791e0
d9e50bf28896
格式化显示镜像
[root@master ~]# docker images --format "{{.ID}}--{{.Repository}}"
605c77e624dd--nginx
7614ae9453d1--redis
ba6acccedd29--ubuntu
5d0da3dc9764--centos
afb6fca791e0--centos
d9e50bf28896--opensuse
#以表格形式显示,美化
[root@master ~]# docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
605c77e624dd nginx latest
7614ae9453d1 redis latest
ba6acccedd29 ubuntu latest
5d0da3dc9764 centos latest
afb6fca791e0 centos 7.8.2003
d9e50bf28896 opensuse latest
#搜索dockerhub的镜像
docker search 镜像名
删除镜像
下载
[root@master ~]# docker pull hello-world
#根据镜像的 id 名字 摘要等
#被删除的镜像不得有依赖的容器记录
docker rmi hello-world
docker ps -a
#删除容器记录
[root@master ~]# docker rm 4c7039868be4
[root@master ~]# docker rmi hello-world:latest
Untagged: hello-world:latest
Untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
Deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 22 months ago 141MB
redis latest 7614ae9453d1 22 months ago 113MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
centos latest 5d0da3dc9764 2 years ago 231MB
#指定前三位
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 22 months ago 141MB
redis latest 7614ae9453d1 22 months ago 113MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
centos latest 5d0da3dc9764 2 years ago 231MB
centos 7.8.2003 afb6fca791e0 3 years ago 203MB
opensuse latest d9e50bf28896 4 years ago 111MB
[root@master ~]# docker rmi feb
Untagged: hello-world:latest
Untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
Deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
镜像管理
#批量删除镜像的用法,rm
#批量删除镜像,慎用
[root@master ~]# docker rmi `docker images -aq`
[root@master ~]# docker rm `docker images -aq`
#导出镜像
#比如默认运行的centos镜像,不提供vim功能,运行该容器后,在容器内安装vim
#然后提供该镜像,再到处该镜像为压缩文件,可以发给其他人用
#放在容器管理篇学习
docker commit
#导出镜像的命令
[root@master ~]# docker image save centos:7.8.2003 > /opt/centos7.8.2003.tgz
#导入镜像的命令
#docker images
[root@master ~]# docker image load -i /opt/centos7.8.2003.tgz
#查看镜像详细信息
#查看docker服务的信息
docker indo
docker image inspacet 镜像id