【云原生】一看就会的Docker镜像管理_docker 镜像管理,这份火爆全网的452页Linux运维 Framework内核解析

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

official:是否是官方创建


#### 4.查看镜像的详细信息


​ 查看信息,完整的ID号, repotags当前镜像的版本,镜像的大小等信息信息,或者使用docker images --no-trunc



[root@localhost ~]# docker inspect centos
[
{
“Id”: “sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6”,
“RepoTags”: [
“centos:latest”
],
“RepoDigests”: [
“centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177”
],
“Parent”: “”,
“Comment”: “”,
“Created”: “2021-09-15T18:20:05.184694267Z”,
“Container”: “9bf8a9e2ddff4c0d76a587c40239679f29c863a967f23abf7a5babb6c2121bf1”,
“ContainerConfig”: {
“Hostname”: “9bf8a9e2ddff”,
“Domainname”: “”,
“User”: “”,
“AttachStdin”: false,
“AttachStdout”: false,
“AttachStderr”: false,
“Tty”: false,
“OpenStdin”: false,
“StdinOnce”: false,
“Env”: [
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
],
“Cmd”: [
“/bin/sh”,
“-c”,
“#(nop) “,
“CMD [”/bin/bash”]”
],
“Image”: “sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422”,
“Volumes”: null,
“WorkingDir”: “”,
“Entrypoint”: null,
“OnBuild”: null,
“Labels”: {
“org.label-schema.build-date”: “20210915”,
“org.label-schema.license”: “GPLv2”,
“org.label-schema.name”: “CentOS Base Image”,
“org.label-schema.schema-version”: “1.0”,
“org.label-schema.vendor”: “CentOS”
}
},
“DockerVersion”: “20.10.7”,
“Author”: “”,
“Config”: {
“Hostname”: “”,
“Domainname”: “”,
“User”: “”,
“AttachStdin”: false,
“AttachStdout”: false,
“AttachStderr”: false,
“Tty”: false,
“OpenStdin”: false,
“StdinOnce”: false,
“Env”: [
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
],
“Cmd”: [
“/bin/bash”
],
“Image”: “sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422”,
“Volumes”: null,
“WorkingDir”: “”,
“Entrypoint”: null,
“OnBuild”: null,
“Labels”: {
“org.label-schema.build-date”: “20210915”,
“org.label-schema.license”: “GPLv2”,
“org.label-schema.name”: “CentOS Base Image”,
“org.label-schema.schema-version”: “1.0”,
“org.label-schema.vendor”: “CentOS”
}
},
“Architecture”: “amd64”,
“Os”: “linux”,
“Size”: 231219825,
“VirtualSize”: 231219825,
“GraphDriver”: {
“Data”: {
“MergedDir”: “/var/lib/docker/overlay2/892d8942ea7d54cab5feb69ad45adfd509b48e8fc0684adc7b0b0df8ed54cfb2/merged”,
“UpperDir”: “/var/lib/docker/overlay2/892d8942ea7d54cab5feb69ad45adfd509b48e8fc0684adc7b0b0df8ed54cfb2/diff”,
“WorkDir”: “/var/lib/docker/overlay2/892d8942ea7d54cab5feb69ad45adfd509b48e8fc0684adc7b0b0df8ed54cfb2/work”
},
“Name”: “overlay2”
},
“RootFS”: {
“Type”: “layers”,
“Layers”: [
“sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59”
]
},
“Metadata”: {
“LastTagTime”: “0001-01-01T00:00:00Z”
}
}
]

或者
[root@localhost ~]# docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412 21 months ago 13.3kB
centos latest sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6 21 months ago 231MB


#### 5.创建我们自己的image


​ 有的时候别人的镜像不一定适合我们,这个时候就需要我们自定义的来创建镜像,来进行创建使用


##### 1.创建一个容器,安装一个httpd服务



[root@localhost ~]# docker run -it centos /bin/bash
[root@cda2197c7f3b /]# yum -y install nginx


##### 2.退出将当前容器做为镜像



[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cda2197c7f3b centos “/bin/bash” 13 minutes ago Exited (130) About a minute ago nice_williams
74ad543dbd55 centos “/bin/bash” 13 minutes ago Exited (0) 13 minutes ago sharp_cohen
[root@localhost ~]# docker commit -m “add httpd” -a ‘test’ cda2197c7f3b centos8:httpd
sha256:8ccee778a96a46b0a815f24844df5a6fd5eb7c164a11f9cce2077b1a6bf647bf
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos8 httpd 8ccee778a96a 7 seconds ago 280MB
hello-world latest feb5d9fea6a5 21 months ago 13.3kB
centos latest 5d0da3dc9764 21 months ago 231MB


##### 3.使用当前创建的镜像进行创建容器



[root@localhost ~]# docker run -it centos8:httpd
[root@7b703e1a038a /]# rpm -q httpd
httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64


##### 4.创建镜像命令



[root@localhost ~]# docker commit --help

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container’s changes

Aliases:
docker container commit, docker commit

Options:
-a, --author string Author (e.g., “John Hannibal Smith hannibal@a-team.com”)
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Commit message
-p, --pause Pause container during commit (default true)

格式:
docker commit [选项] 容器名称或者ID [镜像名字:[标签]]
选项:
-a:作者,联系方式
-c:创建的镜像应用dockerfile指令
-m:描述信息
-p:在创建镜像时,自动停止容器,默认为true


#### 6.上传到个人仓库docker hub中


##### 1.将要打包的镜像进行更改为仓库的用户名和仓库名称



[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
conquerbug/test v1 8ccee778a96a About an hour ago 280MB
centos8 httpd 8ccee778a96a About an hour ago 280MB
hello-world latest feb5d9fea6a5 21 months ago 13.3kB
centos latest 5d0da3dc9764 21 months ago 231MB

[root@localhost ~]# docker tag 8ccee778a96a conquerbug/test:v1


##### 2.进行登录docker hub账号并上传



[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don’t have a Docker ID, head over to https://hub.docker.com to create one.
Username: conquerbug
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@localhost ~]# docker push conquerbug/test:v1
The push refers to repository [docker.io/conquerbug/test]
6ef790a7eff0: Pushing [>] 48.89MB
74ddd0ec08fa: Pushing [
>] 238.6MB


#### 7.存出镜像和载入镜像


##### 1.将两个镜像进行打包



[root@localhost ~]# docker save -o centos-hello.tar hello-world centos


##### 2.删除这两个镜像



[root@localhost ~]# docker rmi hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
Deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
[root@localhost ~]# docker rmi centos
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE


##### 3.重新载入镜像



[root@localhost ~]# docker load --input centos-hello.tar
e07ee1baac5f: Loading layer [>] 14.85kB/14.85kB
Loaded image: hello-world:latest
74ddd0ec08fa: Loading layer [
>] 238.6MB/238.6MB
Loaded image: centos:latest
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 21 months ago 13.3kB
centos latest 5d0da3dc9764 21 months ago 231MB


#### 8.删除镜像和容器


##### 1.删除镜像



[root@localhost ~]# docker rmi hello-world
Untagged: hello-world:latest
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
Deleted: sha256:e07ee1baac5fae6a


##### 2.删除容器



[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b703e1a038a centos8:httpd “/bin/bash” 2 hours ago Exited (0) 2 hours ago mystifying_pare
cda2197c7f3b centos “/bin/bash” 2 hours ago Exited (130) 2 hours ago nice_williams
74ad543dbd55 centos “/bin/bash” 2 hours ago Exited (0) 2 hours ago sharp_cohen
[root@localhost ~]# docker rm -f 7b703e1a038a cda2197c7f3b 74ad543dbd55
7b703e1a038a
cda2197c7f3b
74ad543dbd55
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


### 三,Docker Container容器管理


#### 1.创建容器


##### 1.前台运行创建


​ 注意:下面是创建容器并进入容器,当exit退出容器后,容器就不在运行,需要使用-d选项,后台运行



[root@localhost ~]# docker run -i -t centos:7 /bin/bash
[root@4af91bbbc860 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 03:19 pts/0 00:00:00 /bin/bash
root 15 1 0 03:19 pts/0 00:00:00 ps -ef
[root@4af91bbbc860 /]# exit
exit
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af91bbbc860 centos:7 “/bin/bash” 7 minutes ago Exited (0) 8 seconds ago naughty_meitner

选项:
-name:指定容器名称,默认是随机名字
-i:创建一个交互式容器
-t:为容器分配一个伪终端,绑定到容器的标准输入上
-d:后台运行容器


##### 2.后台运行创建



[root@localhost ~]# docker run -itd --name centos7-1 centos:7 /bin/bash
08b6e56e54f2d645601cd71020a922c7b5f916725401b7408e358a782a965284
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08b6e56e54f2 centos:7 “/bin/bash” 2 seconds ago Up 2 seconds centos7-1
4af91bbbc860 centos:7 “/bin/bash” 8 minutes ago Exited (0) About a minute ago naughty_meitner

选项:
-name:指定容器名称,默认是随机名字
-i:创建一个交互式容器
-t:为容器分配一个伪终端,绑定到容器的标准输入上
-d:后台运行容器


#### 2.查看容器



[root@localhost ~]# docker ps --help

Usage: docker ps [OPTIONS]

List containers

Aliases:
docker container ls, docker container list, docker container ps, docker ps

Options:
-a, --all Show all containers (default shows just running) #查看所有容器 默认之查看在运行的容器
-f, --filter filter Filter output based on conditions provided
–format string Format output using a custom template:
‘table’: Print output in table format
with column headers (default)
‘table TEMPLATE’: Print output in table format
using the given Go template
‘json’: Print in JSON format
‘TEMPLATE’: Print output using the given Go
template.
Refer to https://docs.docker.com/go/formatting/ for
more information about formatting output with templates
-n, --last int Show n last created containers (includes all #查看多少行容器
states) (default -1)
-l, --latest Show the latest created container (includes all states) #查看最近创建的容器
–no-trunc Don’t truncate output #显示完整ID号
-q, --quiet Only display container IDs #只显示ID号
-s, --size Display total file sizes #显示容器大小


###### 1.查看所有的容器



[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08b6e56e54f2 centos:7 “/bin/bash” 27 minutes ago Up 27 minutes centos7-1
4af91bbbc860 centos:7 “/bin/bash” 35 minutes ago Exited (0) 28 minutes ago naughty_meitner


###### 2.查看容器的ID


​ 注:可以用于删除容器时,过滤



[root@localhost ~]# docker ps -q
08b6e56e54f2


#### 3.管理容器


##### 1.开启容器



[root@localhost ~]# docker start 4af91bbbc860
4af91bbbc860
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08b6e56e54f2 centos:7 “/bin/bash” 30 minutes ago Up 30 minutes centos7-1
4af91bbbc860 centos:7 “/bin/bash” 38 minutes ago Up 1 second naughty_meitner


##### 2.关闭容器



[root@localhost ~]# docker stop 08b6e56e54f2
08b6e56e54f2
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-qIS338ip-1713200714214)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值