上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。
ASP站长网当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示命令。
Docker镜像操作命令
[root@docker ~]# which docker
/usr/bin/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的镜像
实例操作演示:
[root@docker ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12968 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1772 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 764 [OK]
...//省略部分内容
[root@docker ~]# docker search -s 100 nginx
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12968 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1772 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 764 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 104
简要说明:
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镜像为例
[root@docker ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
c499e6d256d6: Pull complete
74cda408e262: Pull complete
ffadbd415ab7: Pull complete
Digest: sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:lates
这样我们就拉取了一个nginx镜像,那么我们怎么查看呢?
3、镜像信息查看:docker images
命令描述:列出本地镜像
命令格式:docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。
实例演示:
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 6 days ago 127MB
#等价于下面的命令
[root@docker ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 6 days ago 127MB
简要说明:
REPOSITORY:仓库名称
TAG:标签
IMAGE ID:镜像id
CREATE:创建状态(按照时间)
SIZE:文件大小
PS:补充使用docker inspect IMAGE ID可以查看镜像的详细信息。
下面看看这个TAG的作用
4、镜像标签操作:docker tag
命令描述:标记本地镜像,将其归入某一仓库
命令格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
实例演示:
[root@docker ~]# docker tag nginx:latest nginx:lokott
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 6 days ago 127MB
nginx lokott ed21b7a8aee9 6 days ago 127MB
假设我们创建的时候发现有错误,或者在不需要的时候怎么删除镜像呢?继续来看哈!
5、删除镜像:docker rmi
命令描述:删除本地一个或多个镜像
命令格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
Options:
-f, --force Force removal of the image
--no-prune Do not delete untagged parents
实例演示:
[root@docker ~]# docker rmi nginx:lokott
Untagged: nginx:lokott
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 6 days ago 127MB
[root@docker ~]# docker rmi nginx:latest
Untagged: nginx:latest
Untagged: nginx@sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596
Deleted: sha256:ed21b7a8aee9cc677df6d7f38a641fa0e3c05f65592c592c9f28c42b3dd89291
Deleted: sha256:8a305f371a6c3c445a1dfc500c1364743868a269ab8cdaf95902692e82168352
Deleted: sha256:d079ef06ec1f10a8050887365f9a940b39547ba6bcc46b16a463e740984f3223
Deleted: sha256:c3a984abe8a88059915bb6c7a1d249fd1ccc16d931334ac8816540b0eb686b45
删除打标签的镜像其实本质就是一个脱去标签的操作,与删除原镜像文件是不一样的。
尽量不要使用删除ID号的方式删除镜像,并且注意尽量删除依赖该镜像的所有容器后再删除这个镜像。
那么我们需要考虑我们拉取了镜像之后怎么存出镜像呢?这就需要使用下面的命令来实现了。
6、存出镜像:docker save
所谓存出,我们设想这样的场景应用:当需要将一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这个过程就叫做存出镜像。
你可以简单理解为将镜像打成压缩包方便使用
命令描述:将指定镜像保存成 tar 归档文件
命令格式:docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS 说明:
-o :输出到的文件。
实例演示:
[root@docker ~]# docker save -o /opt/nginx nginx:latest
[root@docker ~]# ll /opt/
总用量 127560
drwx--x--x. 4 root root 28 4月 6 09:45 containerd
-rw-------. 1 root root 130618880 4月 6 14:04 nginx
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
那么有存出,就必定有对应的载入操作,我们将存出的文件从本地复制一份到其他机器上是,我们需要使用这个镜像,可以通过下面的命令实现载入镜像
7、载入镜像:docker load
命令描述:载入镜像文件
命令格式:docker load [OPTIONS]
Options:
-i, --input string Read from tar archive file, instead of STDIN
-q, --quiet Suppress the load output
实例演示:
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
#一:
[root@docker ~]# docker load < /opt/nginx
c3a984abe8a8: Loading layer 72.48MB/72.48MB
99134ec7f247: Loading layer 58.11MB/58.11MB
d37eecb5b769: Loading layer 3.584kB/3.584kB
Loaded image: nginx:latest
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 6 days ago 127MB
#二:从tar存档文件中读取,而不是从STDIN中读取
[root@docker ~]# docker load --input /opt/nginx #或者使用-i代替--input也是一样的
c3a984abe8a8: Loading layer 72.48MB/72.48MB
99134ec7f247: Loading layer 58.11MB/58.11MB
d37eecb5b769: Loading layer 3.584kB/3.584kB
Loaded image: nginx:latest
8、上传镜像:docker login (不做细说以及演示)
命令描述:将自己本地的镜像制作好后上传到仓库中
命令格式:docker login
结合docker push NAME[:TAG]使用

