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入门与实战》