文章共3780字18图
预计阅读时间11分钟
如何安装Docker?请参考上一篇文章(传送门) Docker环境信息、容器生命周期管理部分命令参考上一篇文章(传送门) 总结到了一张脑图上,可以做个参考,查看高清版请点我
1.docker login 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login [OPTIONS] [SERVER]
-u :登陆的用户名
-p :登陆的密码
示例:
docker login -u username -p password
你也可以这样直接docker login,然后会让你输入用户名和密码,验证成功就登录了。
2.docker logout 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub 示例:
docker logout
logout
3.docker search 从Docker Hub上查找指定的镜像
docker search [OPTIONS] images
--automated :只列出 automated build类型的镜像
--no-trunc :显示完整的镜像描述
-s :列出收藏数不小于指定值的镜像
示例 从Docker Hub查找所有镜像名包含nginx的,并且收藏数大于10的镜像:
docker search -s 10 nginx
search
4.docker pull 从镜像仓库中拉取或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-a:拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
示例 从Docker Hub拉取nginx最新版镜像:
docker pull nginx
pull
5.docker push 将本地的镜像上传到镜像仓库,首先要登录到镜像仓库,还要登录到Docker Hub创建对应名称的仓库,然后用tag命令给镜像打标签,只有打上标签才可以上传成功。(详细介绍)
docker push [OPTIONS] NAME[:TAG]
--disable-content-trust :忽略镜像的校验,默认开启
6.docker tag 标记本地镜像,将其归入某一仓库
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
一个完整的push示例:
[root@localhost ~]# docker tag nginx:latest area39/nginx:v1
[root@localhost ~]# docker push area39/nginx:v1
The push refers to repository [docker.io/area39/nginx]
589561a3ffb4: Pushed
ef7dbb0cfc81: Pushed
d56055da3352: Pushed
v1: digest: sha256:f83b2ffd963ac911f9e638184c8d580cc1f3139d5c8c33c87c3fb90aebdebf76 size: 948
1.docker build 用于使用Dockerfile文件创建镜像,是一个比较常用和重要的命令,关于Dockerfile文件如何定制化,后续会写一篇文专门讲。
docker build [OPTIONS] PATH | URL | -
--build-arg=[] :设置镜像创建时的变量;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--tag, -t: 镜像的名字及标签,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个标签。
--network: 默认 default。在构建期间设置RUN指令的网络模式
使用当前目录的Dockerfile创建镜像,标签为”ctf-sqli:1”,注意后面的”.”千万不能丢。
[root@localhost docker-for-web]# docker build -t ctf-sqli:1 .
2.docker images 通过docker images命令可以列出主机上的镜像,默认只列出最顶层的镜像,可以使用-a选项显示出所有镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
--digests :显示镜像的摘要信息
-f :显示满足条件的镜像
--format :指定返回值的模板文件
--no-trunc :显示完整的镜像信息
示例:
[root@localhost ~]# docker images -a
images
3.docker rmi docker rmi命令用于删除镜像,删除镜像时,如果已有基于该镜像启动的容器存在,则无法直接删除,需要先用rm命令删除容器。这两个子命令都提供 -f 选项,可强制删除存在容器的镜像或启动中的容器。
docker rmi [OPTIONS] IMAGE [IMAGE...]
-f:强制删除
--no-prune:不移除该镜像的过程镜像,默认移除
示例 删除ubuntu:16.04镜像:
[root@localhost ~]# docker rmi ubuntu:16.04
Untagged: ubuntu:16.04
Untagged: ubuntu@sha256:58d0da8bc2f434983c6ca4713b08be00ff5586eb5cdff47bcde4b2e88fd40f88
Deleted: sha256:9361ce633ff193349d54bed380a5afe86043b09fd6ea8da7549dbbedfc2a7077
Deleted: sha256:59a6856f439d187f3ce3381d0a6b0816db99cc3d8468bcf8c9d1c39d2071dcff
Deleted: sha256:82997a16a0d57ac7d8b416c0d83f5841193b6a56a7844b486ab6324730867fe0
Deleted: sha256:5c6983f277f26021b5e38501fdf06fa29f7158a93641f3f10aedbdc9869121d0
Deleted: sha256:aa54c2bc12290df2851a94b8834cae75e4627219d2b423d4d3db8b0a497e79a2
rmi
4.docker save 将指定镜像保存成tar归档文件
docker save [OPTIONS] IMAGE [IMAGE...]
-o :输出到的文件
示例 将nginx:latest镜像归档为tar文件:
[root@localhost ~]# docker save -o nginx.tar nginx:latest
[root@localhost ~]# ls
nginx.tar
save
5.docker load 导入使用docker save命令导出的镜像
docker load [OPTIONS]
-i :指定导出的文件
-q :精简输出信息
示例 导入nginx:latest镜像:
[root@localhost ~]# docker load -i nginx.tar
Loaded image: nginx:latest
[root@localhost ~]# docker images nginx:latest
REPOSITORYTAG IMAGE IDCREATED SIZE
nginx latest98ebf73aba753 days ago109MB
load
6.docker commit docker commit命令可以将一个容器固化为一个新的镜像。当需要制定特定的镜像时,会进行修改容器的配置,比如在容器中安装一些特定的工具等,通过commit命令可以将这些修改保存起来,使其不会因为容器的停止而丢失
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停
示例:
[root@localhost ~]# docker commit -a "Linuz" 66d682605023 ubuntu:linuz
sha256:5e0162d1e4e9d04a37c3c10b052d435555f3961e029735ed07c96d66c6a6e608
commit