1.如果硬盘出现告警,根据不同告警状态可以作初始判断和定位。硬盘指示灯状态定义参考如下图。
*参考文档:HP ProLiant DL380 G6 Server Maintenance and Service Guide--June 2009 (Fourth Edition)
1.在开机到下图界面时按F8,进入ipmi配置界面。
2.如下图,在菜单中找到 Network—NIC and TCP/IP 。
3.进入这个界面,在IP Address输入ipmi的地址例如192.168.169.81
Subnet Mask输入掩码:255.255.255.0
Gateway IP Address:192.168.169.1
4.IPMI地址配置完成之后,F10确定退出。
1.在开机到下图界面时按F8,进入ipmi配置界面。
2.如下图,在菜单中找到User/选择Remove可以删除目前的用户
3.进入这个界面,选择用户,按回车即可删除这个用户,ESC取消
4.User中选择Add添加用户。
5.输入添加的用户名,登录的账号和密码,第二次重复校验密码。按F10保存退出。
6.保存完毕后,打开浏览器,输入ipmi地址,用新添加的用户测试能否正常登录。
1.在开机到下图界面时按F9,进入BIOS。
2.在BIOS菜单中找到System Option选项并点击进入。
3.找到processor option选项并点击进入
4.找到Intel(R)Virtualization Technology,点击选择Enabled。开启虚拟化技术。
5.找到Intel(R)VT-d,点击选择Enabled。
6.找到Intel(R)Hyperthreading option ,点击选择enabled,开启超线程。
7.都开启完毕之后,保存退出。
1、gitlab安装完成后要通过域名访问,需配置nginx
nginx的配置文件在 /etc/nginx/conf.d/
配置如下
可通过域名访问
2、用户注册时收不到邮件,需要配置vim /etc/gitlab/gitlab.rb
授权码需要在邮箱中获取
开启qq邮箱的POP3/SMTP服务并保存好授权码
配置完成后可进行测试
执行 gitlab-rails console进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
在首页注册后即可进入系统进行操作。
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
1、管理和使用本地 Docker 主机镜像
2、创建镜像
列出镜像列表
可以使用 docker images 来列出本地主机上的镜像。
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
所以,如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@d77ccb2e5cca:/#
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu:15.10: 这是指用 ubuntu 15.10 版本镜像为基础来启动容器。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
如果要使用版本为 14.04 的 ubuntu 系统镜像来运行容器时,命令如下:
runoob@runoob:~$ docker run -t -i ubuntu:14.04 /bin/bash
root@39e968165990:/#
如果不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
获取一个新的镜像
在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
Crunoob@runoob:~$ docker pull ubuntu:13.1013.10: Pulling from library/ubuntu6599cadaf950: Pull complete 23eda618d451: Pull complete
f0be3084efe9: Pull complete 52de432f084b: Pull complete
a3ed95caeb02: Pull complete Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3Status: Downloaded newer image for ubuntu:13.10
下载完成后,我们可以直接使用这个镜像来运行容器。
查找镜像
可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。
runoob@runoob:~$ docker search httpd
点击图片查看大图:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
拖取镜像
决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。
runoob@runoob:~$ docker pull httpdUsing default tag: latest
latest: Pulling from library/httpd8b87079b7a06: Pulling fs layer
a3ed95caeb02: Download complete 0d62ec9c6a76: Download complete
a329d50397b9: Download complete
ea7c1f032b5c: Waiting
be44112b72c7: Waiting
下载完成后,我们就可以使用这个镜像了。
runoob@runoob:~$ docker run httpd
删除镜像
镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:
$ docker rmi hello-world
创建镜像
从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1、从已经创建的容器中更新镜像,并且提交这个镜像
2、使用 Dockerfile 指令来创建一个新的镜像
更新镜像
更新镜像之前,我们需要使用镜像来创建一个容器。
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit 命令来退出这个容器。
此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各个参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
e218edb10161:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
使用新镜像 runoob/ubuntu 来启动一个容器
runoob@runoob:~$ docker run -t -i runoob/ubuntu:v2 /bin/bash
root@1a9fbdeb5da3:/#
构建镜像
使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
runoob@runoob:~$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
runoob@runoob:~$ docker build -t runoob/centos:6.7 .Sending build context to Docker daemon 17.92 kBStep 1 : FROM centos:6.7
---> d95b5ca17cc3Step 2 : MAINTAINER Fisher "fisher@sudops.com"
---> Using cache
---> 0c92299c6f03Step 3 : RUN /bin/echo 'root:123456' |chpasswd
---> Using cache
---> 0397ce2fbd0aStep 4 : RUN useradd runoob......
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB
runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB
php 5.6 f40e9e0f10c8 10 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
我们可以使用新的镜像来创建容器
runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash[root@41c28d18b5fb /]# id runoob
uid=500(runoob) gid=500(runoob) groups=500(runoob)
从上面看到新镜像已经包含我们创建的用户 runoob。
设置镜像标签
可以使用 docker tag 命令,为镜像添加一个新的标签。
runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。
使用 docker images 命令可以看到,ID为860c279d2fec的镜像多一个标签。
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB
runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB
runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB
php 5.6 f40e9e0f10c8 10 days ago 444.8 MB
nginx latest 6f8d099c3adc 13 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
1.挂载ESXI的ISO镜像或插入已写入ESXI镜像的启动盘(本文使用的镜像为VMware-VMvisor-Installer-6.7.0-8169922.x86_64.ISO),重启服务器后按快捷方式(F11或F6,个别型号为F8)进入启动项选择界面,根据实际情况选择通过虚拟光驱或U盘启动:
2.选择“ESXi-6.7.0”加载安装程序:
3.安装程序加载完毕之后,要开始进行安装,按回车键继续:
4.按F11继续:
5.选择要安装ESXI系统的硬盘,按回车键继续:
6.继续按回车键:
7.键盘布局安装默认配置就好不用改动,继续按回车:
8.输入要设置的登录密码,回车:
9.此时会提示硬盘将被重置,按F11执行安装:
10.安装完毕后,系统会提示重启,按回车键:
11.重启后进入ESXI系统,按F2输入用户名密码登录(默认用户名:root):
12.登录后的界面如下图所示,按上、下方向键选择“Configure Management Network”回车,进行网络配置:
13.选中“IPv4 Configuration”回车:
14.选择“Set static IPv4 address and network configuration”配置ESXI远程登录地址为静态IP地址,IP地址配置好后,按回车键确认:
15.“VLAN(optional)”为管理地址的vlan设置选项,如果ESXI内的虚拟机IP地址为同一网段,则此选项不需要设置,如果ESXI内需要配置多个网段的IP地址,则VLAN设置为ESXI管理地址的VLAN号:
16.网络配置完毕后,需要按Esc键退回到系统配置界面,此时会提示是否应用变更的配置,按Y确认:
17.这时候,我们就可以通过浏览器登录ESXI部署虚拟机了,web的用户名、密码与配置ESXI系统时登录的用户名、密码一致:
一、简述VMware中三种网络模式
可能,对于许多接触Linux操作系统的朋友而言,起初都是通过虚拟机软件进行层层深入的学习。而对于其中一种软件——VMware软件的网络连接可能就是初学者的一个难题。可能一直都并不了解所提供的三种网络模式的原理和意义。那么本小节将简单讲述一下有关VMware的三种网络模式:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。而此三种分别对应于网卡设备中的VMnet0、VMnet1(或者后期新增创建的)、VMnet8(NAT网卡也只能有一个)
1.1桥接模式
概念:桥接模式就是一种将主机(好比是你的笔记本上的)的网卡与虚拟机的网卡利用虚拟网桥进行通信。
原理理解:对这种模式的理解可以认为是将物理机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,当然物理机也一样需要连接到这个交换机,也就是说桥接模式下的所有网卡都是交换模式,相互可以访问而且互不干扰。
典型特征:虚拟机的IP地址需要与主机在同一网段,如果需要联网则网关与DNS需要与主机网卡一致。
具体可以再通过下面的图示理解:
1.2网络地址转换模式
NAT模式的话相对来说应该是最熟悉的了。网络地址转换,既然有地址转换,肯定是发生了转变了。NAT模式就比较适合于IP资源紧缺,而且希望虚拟机可以联网的情况。
NAT模式借助的是虚拟的NAT设备以及虚拟的DHCP服务器,从而使得虚拟机可以联网。如下图所示:
1.3仅主机模式
仅主机模式呢,其实说白了就是没有NAT设备的网络模式,仅使用的是VMnet1虚拟网卡与虚拟交换机连接,从而与虚拟机通信,而这种模式就实现了虚拟机与外网的隔离,即独立的一台服务器,只与主机互相通信。如下图所示:
好的,现在大概了解了VMware中三种网络模式的原理了吧,现在继续来聊聊在docker中的网络模式。
二、docker的网络模式
2.1docker网络实现原理
docker使用Linux桥接的方式,即在宿主机虚拟一个docker容器网桥(docker0),docker启动一个 容器时会根据docker网桥的网段分配给容器一个IP地址,这个地址就是容器ip,同时docker就是每个容器的默认网关。因此,同一个宿主机内的容器就可以通过容器ip地址直接通信。
一般情况下,我们在安装和启动docker服务之后使用ifconfig命令即可查看到这个docker0的虚拟网桥设备:
从上面显示的结果来看,默认的容器网关地址为172.17.0.1/16哈!当然loopback网卡是回环网卡,测试验证(TCP/IP连接),virtual bridge则是虚拟网桥(想想KVM【云原生】)
当然,docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法通过ip地址直接寻址的,这就表明我们需要通过其他的方式来使外部网络可以访问容器,一般会通过访问宿主机ip结合容器的端口(并且端口一般是进行了端口映射,之后会讲述)进行容器的访问。
2.2docker四种网络模式
下面直接通过下面的表格来区分理解一下docker的四种网络模式
docker网络模式 |
配置 |
说明 |
host |
|
容器和宿主机共享Network namespace |
container模式 |
|
容器和另外一个容器共享Network namespace |
none模式 |
|
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等 |
bridge模式 |
|
默认的模式 |
其实启动docker服务之后,可以使用docker network相关命令控制管理网络,下面我们查看一下网络列表:(默认存在下面三个)下面逐一介绍(结合第一小节的内容来理解docker 中的网络原理)
2.2.1host模式
host模式结合VMware中的仅主机模式即可理解,通过下图表示一下:
从上图可以看出,如果在启动容器后使用的是host模式,那么这个容器将不会获得一个独立的Network Namespace(网络命名空间),而是和宿主机系统共用一个Network Namespace。并且这就意味着容器将不会虚拟出自己的网卡以及配置自己的ip等,而是使用宿主机的ip以及端口。不过呢,在其他方面例如文件系统等还是与之隔离的。
这种方式最大优势在于网络性能比较好但是缺点也很明显——网络的隔离性很弱。
2.2.2container模式
这个模式正如上述表格中的说明一般,是表示指定新创建的容器和已经存在的一个容器共享一个Network Namespace。当然这也表示新建的这个容器不会创建自己的网卡等相关操作,而是和与指定的容器共享这些资源。
这种模式也和上述的host差不多,除了网络方面,其文件系统、进程列表等都是隔离的。
参照下图:
2.2.3none模式
使用none模式,Docker容器拥有自己的Network Namespace,但是,不会对Docker容器进行任何的网络配置。这就表明这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。这种方式网络的隔离性最为彻底,即表明关闭了容器的网络功能,也无法访问这个容器。
示意图如下:
2.2.4bridge模式
该模式就是我们在启动docker服务后默认的docker网络模式,其会在主机上创建一个名为docker0的虚拟网桥,这个主机上的所有启动的容器就会连接到这个虚拟网桥上。结合VMware中网桥模式原理,想想物理交换机的原理,就不难理解了。
从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中(这个veth对我们在OpenStack中见过,笔者觉得可以将之理解为一个桥梁,建立桥两岸的关系而存在的一种虚拟设备),并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。
使用docker run -p 命令时,docker实际是在防火墙做了DNAT规则,实现端口转发的功能。
下面通过一个节点的服务器结构图来理解:
当然,这四种模式都不需要手动配置,真正需要配置的是自定义网络。
三、docker网络控制相关命令配置
上面已经给出了对应docker网络控制的命令docker network,下面具体看一下这个命令的具体说明:
docker network的命令用法:
Usage: docker network COMMAND
Manage networks
Commands:
connect Connect a container to a network
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks
ls List networks
prune Remove all unused networks
rm Remove one or more networks
3.1桥接命令设置
我们通过尝试、排错和验证的方式来配置docker网络。
因为需要NAT地址转换功能,所以需要开启防火墙,但是核心防护还是关了吧。
我们尝试通过docker网桥方式(桥接)给一个容器设置一个ip地址(自定义的),下面看一下命令执行的结果:
首先,由于没有改镜像,所以会先拉取镜像之后创建以及尝试运行容器,但是会遇到报错,报错原因是因为用户自己设置的ip地址只适合于他们自己定义的网络。但是这并不影响镜像的获取与创建,我们尝试运行看看结果:
很显然,结果告诉我们还是上述的原因导致了这个问题,好吧只能删除这个容器了。索性还原为初始化环境吧(其实可以去掉--network bridge就不会报错,但是设置的ip地址会不生效,可以自行尝试一下),我们不指定ip地址来试一下,顺便验证一下不加这个参数试试,最后还原为初始化状态后我们再通过自定义的方式来设置ip地址吧。
进入容器查看ip地址
那么首先我们需要创建一个自定义的子网段,并且给他一个名称,通过这个网段给对应的容器设置固定的ip地址。
查看容器的状态,进入容器查看ip地址
此时发现自定义的网络设置容器ip地址成功了。
1.关于日志切割
日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。
2.安装logrotate
默认centos系统安装自带logrotate,安装方法如下
yum -y install logrotate crontabs
软件包信息说明
[root@clsn6 ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf # 主配置文件
/etc/logrotate.d # 配置目录
logrotate的配置文件是/etc/logrotate.conf
通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下。
3.实践配置logrotate
3.1 测试logrotate如何管理日志
这里我们将创建一个5GB的日志文件/var/log/eve.json。我们将展示怎样使用logrotate来管理该日志文件。
上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。也可以通过man手册中的例子进行配置。
执行后的效果为
3.2配置文件说明
3.3 Logrotate定时任务
logrotate需要的cron任务应该在安装时就自动创建了。在我的应用中使用的是crontab来配合切割,因为是根据容量来切割的。
4.常见配置参数小结
Docker镜像操作命令
1、镜像搜索:docker search
命令描述:从Docker Hub中搜索并且显示你所需要的镜像
命令格式:docker search [options] term
Options:
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
-s: -s 100 #表示收藏数大于100的镜像
实例操作演示:
docker search nginx
docker search -s 100 nginx
简要说明:
NAME:镜像名称
DESCRIPTION:该镜像的描述信息
STARS:星级,越高则说明使用者,喜欢的人越多
OFFICIAL:是否为官方发布
AUTOMATED:自动创建
该命令作为检索命令,下面我们需要获取你检索后选择的每个镜像
2、镜像获取:docker pull
命令描述:从镜像仓库中拉取(形象的说法嘛)或者更新指定镜像
命令格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
-q, --quiet Suppress verbose output
OPTIONS说明:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
实例演示:拉取nginx镜像为例
docker pull nginx
这样我们就拉取了一个nginx镜像,那么我们怎么查看呢?
3、镜像信息查看:docker images
命令描述:列出本地镜像
命令格式:docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。
实例演示:
docker images
简要说明:
REPOSITORY:仓库名称
TAG:标签
IMAGE ID:镜像id
CREATE:创建状态(按照时间)
SIZE:文件大小
PS:补充使用docker inspect IMAGE ID可以查看镜像的详细信息。
下面看看这个TAG的作用
4、镜像标签操作:docker tag
命令描述:标记本地镜像,将其归入某一仓库
命令格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
实例演示:
docker tag nginx:latest nginx:lokott
docker images
假设我们创建的时候发现有错误,或者在不需要的时候怎么删除镜像呢?继续来看哈!
5、删除镜像:docker rmi
命令描述:删除本地一个或多个镜像
命令格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
Options:
-f, --force Force removal of the image
--no-prune Do not delete untagged parents
实例演示:
docker rmi nginx:lokott
docker rmi nginx:latest
删除打标签的镜像其实本质就是一个脱去标签的操作,与删除原镜像文件是不一样的。
尽量不要使用删除ID号的方式删除镜像,并且注意尽量删除依赖该镜像的所有容器后再删除这个镜像。
那么我们需要考虑我们拉取了镜像之后怎么存出镜像呢?这就需要使用下面的命令来实现了。
6、存出镜像:docker save
所谓存出,我们设想这样的场景应用:当需要将一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这个过程就叫做存出镜像。
你可以简单理解为将镜像打成压缩包方便使用
命令描述:将指定镜像保存成 tar 归档文件
命令格式:docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS 说明:
-o :输出到的文件。
实例演示:
docker save -o /opt/nginx nginx:latest
ll /opt/
那么有存出,就必定有对应的载入操作,我们将存出的文件从本地复制一份到其他机器上是,我们需要使用这个镜像,可以通过下面的命令实现载入镜像
7、载入镜像:docker load
命令描述:载入镜像文件
命令格式:docker load [OPTIONS]
Options:
-i, --input string Read from tar archive file, instead of STDIN
-q, --quiet Suppress the load output
实例演示:
docker images
docker load < /opt/nginx
#二:从tar存档文件中读取,而不是从STDIN中读取
docker load --input /opt/nginx #或者使用-i代替--input也是一样的
8、上传镜像:docker login (不做细说以及演示)
命令描述:将自己本地的镜像制作好后上传到仓库中
命令格式:docker login
结合docker push NAME[:TAG]使用