<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="docker命令学习总结">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2021-04-15 08:37<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
docker命令学习总结

查看docker 系统信息,包括镜像和容器数：docker info

查看docker版本信息：docker version

查看容器：

在线容器信息：docker ps

只显示容器的ID：docker ps -q

显示所有容器信息：docker ps -a

显示运行容器总文件大小：docker ps -s

显示最近创建的容器：docker ps -l

不截断输出：docker ps --no-trunc

镜像操作：

查看本地所有镜像：docker images #也可以用-q参数来只显示ID信息

查看本地镜像摘要信息（DIGEST列）:docker images --digests

查看镜像完整信息:docker images --no-trunc

镜像搜索：docker search images_name

               ##--filter=stars=500 只输出stars&gt;=500的镜像，这项也可以用&quot;-s 500&quot;来替代

               ##--no-trunc 输出镜像完整DESCRIPTION信息

               ##--automated 只输出automated build类型的镜像

镜像下载:docker pull images_name##-a 拉取所有tagged 镜像

镜像删除:docker rmi images_name or imageID##-f 强制删除（针对基于镜像有运行容器进程）

容器操作：

启动已经被停止的容器：docker start CONTAINER_ID or name

停止容器：docker stop CONTAINER_ID or name

重启容器：docker restart CONTAINER_ID or name

删除容器：docker rm CONTAINER_ID or name

查看容器日志：docker logs (-f) CONTAINER_ID or name #加上-f是动态实时显示

查看容器中运行的进程：docker top CONTAINER_ID or name #

使用镜像创建容器：

docker run --name names -d image#容器重命名，并后台模式启动

docker run -it (-p out_port:in_port) image bash #交互模式启动，并在容器内执行bash

命令进入容器：docker exec -it CONTAINER_ID or name /bin/bash

退出容器：exit

容器的导入和导出：

容器的导出：docker export CONTAINER_ID or names &gt;newname.tar

例如：docker export my_ubuntu &gt; /tmp/ubuntu.tar 将my_ubuntu的最新镜像打包为ubuntu.tar

容器导入（只能导成image）：cat newname.tar|docker import - new_image_name

启动image成容器：docker run -t -i (-p out_port:in_port) new_image_name:latest /bin/bash

镜像的导入和导出：

镜像导出：docker save -o ubuntu.tar my_ubuntu:latest

              docker save &gt; ubuntu.tar my_ubuntu:latest

镜像导入：docker load --input ubuntu.tar

              docker load &lt; ubuntu.tar

将宿主机指定文件传送到容器内指定地方：docker cp [YourHostFilePath] [containerID]:[DockerPath]

修改容器名称：docker rename CONTAINER_ID or names new_name

详细展示容器的具体信息：docker inspect CONTAINER_ID or names

查看docker中各容器使用的资源情况：

docker stats #会持续输出信息

docker stats --no-stream #只返回当前状态

docker stats --no-stream [CONTAINER_ID or names] #返回容器的当前状态，可同时多个，空格隔开

一个操作实例（mysql容器中数据库信息导出和导入）：

mysql容器的数据导出：

docker exec CONTAINER_ID or names sh -c 'exec mysqldump --all-databases -uroot -p&quot;$MYSQL_ROOT_PASSWORD&quot;' &gt; /tmp/filename.sql

数据导入容器中的mysql：

1.先把文件filename.sql传进docker中：docker cp /tmp/filename.sql CONTAINER_ID or names:[DockerPath]

2.用命令导入：mysql -uroot -p -D databasename &lt; /tmp/filename.sql

附（创建容器时，内存和cpu的部分设定方式）：

设置内存上限值: -m 内存数值

设置容器的cpu限制信息：--cpu-cpus num &ndash;cpu-quota=num &ndash;cpu-period=

Docker与传统虚拟机相比：

优势：

docker启动快速，属于秒级别。

docker需要的资源更少，docker在操作系统级别进行虚拟化，docker容器和内核交互，几乎没有性能损耗，性能优于通过Hypervisor层与内核层的虚拟化。

docker更轻量

快速创建、删除

劣势：

与虚拟机相比，docker隔离性更弱

docker的安全性也更弱

docker的集中化管理工具还不算成熟


</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
