三、容器管理命令
3.1 Docker commit 命令,从容器创建一个新的镜像。
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例:将容器6h04c6c178u7 保存为新的镜像,并添加提交人信息和说明信息。
# docker commit -a "xliang" -m "web_db" 6h04c6c178u7 sql:v1
# docker images sql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
sql v1 6h04c6c178u7 01 seconds ago 325 MB
3.2 Docker cp 命令,用于容器与主机之间的数据拷贝。
OPTIONS说明:
-L :保持源目标中的链接
实例:将主机/www/html目录拷贝到容器6h04c6c178u7的/www目录下。
# docker cp /www/html 6h04c6c178u7:/www/
将主机/www/html目录拷贝到容器6h04c6c178u7中,目录重命名为www。
# docker cp /www/html 6h04c6c178u7:/www
将容器6h04c6c178u7的/www目录拷贝到主机的/tmp目录中。
# docker cp 6h04c6c178u7:/www /tmp/
3.3 Docker diff 命令,检查容器里文件结构的更改。
实例
查看容器mysql的文件结构更改。
# docker diff mysql
A /logs
A /mysql_data
C /run
C /run/mysqld
四、镜像仓库命令
4.1 Docker login/logout 命令,登陆/登出到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
OPTIONS说明:
-u :登陆的用户名
-p :登陆的密码
实例
登陆到Docker Hub
# docker login -u 用户名 -p 密码
登出Docker Hub
# docker logout
4.2 Docker pull 命令,从镜像仓库中拉取或者更新指定镜像
OPTIONS说明:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
实例:从Docker Hub下载mysql最新版镜像。
# docker pull mysql
4.3 Docker push 命令,将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
实例:上传本地镜像myapache:v1到镜像仓库中。
# docker push myapache:v1
4.4 Docker搜索命令,从Docker Hub查找镜像
选项说明:
--automated:只列出自动构建类型的镜像;
--no-trunc:显示完整的镜像描述;
-s:列出收藏数不小于指定值的镜像。
实例:从Docker Hub查找所有镜像名包含mysql,并且收藏数大于10的镜像
# docker search -s 10 mysql
五、本地镜像管理命令
5.1 Docker images命令,列出本地镜像。
选项说明:
-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests:显示镜像的摘要信息;
-f:显示满足条件的镜像;
--format:指定返回值的模板文件;
--no-trunc:显示完整的镜像信息;
-q:只显示镜像ID。
实例:查看本地镜像列表。
# docker images
列出本地镜像中REPOSITORY为mysql的镜像列表。
# docker images mysql
5.2 Docker rmi 命令,删除本地一个或多少镜像。
OPTIONS说明:
-f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除;
实例:强制删除本地镜像mysql
# docker rmi -f mysql
5.3 Docker tag 命令,标记本地镜像,将其归入某一仓库。
实例:将镜像mysql:5.6标记为 web/mysql:5.6 镜像
# docker tag mysql:5.6 web/mysql:5.6
5.4 Docker build 命令,用于使用 Dockerfile 创建镜像。
OPTIONS说明:
--build-arg=[] :设置镜像创建时的变量;
--cpu-shares :设置 cpu 使用权重;
--cpu-period :限制 CPU CFS周期;
--cpu-quota :限制 CPU CFS配额;
--cpuset-cpus :指定使用的CPU id;
--cpuset-mems :指定使用的内存 id;
--disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
--label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache :创建镜像的过程不使用缓存;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit :Ulimit配置。
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network: 默认 default。在构建期间设置RUN指令的网络模式
实例
使用当前目录的 Dockerfile 创建镜像,标签为 web/nginx
# docker build -t web/nginx .
使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。
# docker build github.com/creack/docker-firefox
也可以通过 -f Dockerfile 文件的位置:
# docker build -f /home/docke/Dockerfile .
在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:
# docker build -t test/myapp .
5.5 Docker history 命令,查看指定镜像的创建历史
OPTIONS说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID。
实例:查看本地镜像web/mysql的创建历史。
# docker history web/mysql
5.6 Docker save 命令,将指定镜像保存成 tar 归档文件。
OPTIONS说明:
-o :输出到的文件
实例:将镜像web/mysql 生成mysql_5.6.tar文档
# docker save -o mysql_5.6.tar web/mysql
5.7 Docker import 命令,从归档文件中创建镜像。
OPTIONS说明:
-c :应用docker 指令创建镜像;
-m :提交时的说明文字;
实例:从镜像归档文件mysql_5.6.tar创建镜像,命名为web/mysql5.6:v1
# docker import mysql_5.6.tar web/mysql5.6:v1
六、版本信息查看
6.1 Docker info 命令,显示 Docker 系统信息,包括镜像和容器数
实例:查看docker系统信息。
# docker info
6.2 Docker version 命令,显示 Docker 版本信息。
OPTIONS说明:
-f :指定返回值的模板文件。
实例:显示 Docker 版本信息。
# docker version