Docker 常用命令

  • 拉取镜像
[root@localhost ~]# docker search nginx:11.1
  • 列出镜像
[root@localhost ~]# docker images
  • 添加镜像标签
[root@localhost ~]# docker tag nginx 192.168.126.128/xx/nginx:v1.1
  • 查看镜像详细信息
[root@localhost ~]# docker inspect nginx
[root@localhost ~]# docker inspect nginx -f {{.Config.Cmd}}
[nginx -g daemon off;]
[root@localhost ~]# 
  • 搜索镜像
[root@localhost ~]# docker search --automated -s 300 nginx
Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker con…   1607                                    [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable of…   716                                     [OK]
[root@localhost ~]# 

--automated=true|false 仅显示自动创建的镜像,默认为否
--no-trunc=true|false 输出信息不截断显示,默认为否
-s,--stars=X 仅显示评价为指定星级以上的镜像,默认为零,即显示全部
  • 使用镜像标签删除镜像
[root@localhost ~]# docker rmi 192.168.126.128/xx/nginx:v1.1
  • 使用镜像ID删除镜像
[root@localhost ~]# docker rmi 53f3fd8007f7

该命令会尝试删除所有依赖该镜像的标签,然后删除该镜像文件本身  
当有该镜像创建的容器存在时,镜像文件无法被删除
  • 创建镜像
docker commit [options] CONTAINER [REPOSITORY[:TAG]]
-a, --author="" 作者信息
-c,--change=[] 提交的时候执行dockerfile命令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
-m, --message="" 提交消息
-p, --pause=true 提交时暂停容器运行

docker commit -m "Added a new file" -a "me" advf88asd89 test:v1
  • 保存和载入镜像
导出本地的镜像nginx:latest为文件nginx:v1.tar
[root@localhost ~]# docker save -o nginx:v1.tar nginx
[root@localhost ~]#


导入nginx:v1.tar
[root@localhost ~]# docker load --input nginx:v1.tar
Loaded image: nginx:latest
或者
[root@localhost ~]# docker load < nginx:v1.tar
Loaded image: nginx:latest
[root@localhost ~]#
  • 新建并启动容器
[root@localhost ~]# docker run -itd  nginx
ce7f7bee21fb9d8eeaa7e8f39946671a7f1e61257f27067dc88ef5417c1801e8

-t 分配一个伪终端,并绑定到容器的标准输入上
-i 让容器的标准输入保持打开
-d 让容器在后台运行
  • 进入容器
[root@localhost ~]# docker exec -it ce7f7bee21fb /bin/bash
root@ce7f7bee21fb:/# 
  • 导入和导出容器
[root@localhost ~]# docker export -o nginx_v2.tar 29c10a75
[root@localhost ~]# 

[root@localhost ~]# docker import nginx_v2.tar  vv/nginx:v2
sha256:4d25d5de74967ad5faf5192a4bc2ad9c7177025e8133afa446dba8f44f5d5545
[root@localhost ~]# docker images
REPOSITORY                      TAG                        IMAGE ID            CREATED             SIZE
vv/nginx                        v2                         4d25d5de7496        6 seconds ago       35.3MB

docker save/load 与docker export/import 区别  
docker save/load 会保存镜像的所有历史记录
docker export/import 会丢失元数据和历史记录,仅保留容器当时的状态

参考
《Docker入门与实战》

posted @ 2019-06-04 22:41  漂泊的蒲公英  阅读(160)  评论(0)    收藏  举报