记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

docker命令学习总结

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>=500的镜像,这项也可以用"-s 500"来替代
               ##--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 >newname.tar
例如:docker export my_ubuntu > /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 > ubuntu.tar my_ubuntu:latest
镜像导入:docker load --input ubuntu.tar
              docker load < 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"$MYSQL_ROOT_PASSWORD"' > /tmp/filename.sql
数据导入容器中的mysql:
1.先把文件filename.sql传进docker中:docker cp /tmp/filename.sql CONTAINER_ID or names:[DockerPath]
2.用命令导入:mysql -uroot -p -D databasename < /tmp/filename.sql
附(创建容器时,内存和cpu的部分设定方式):
设置内存上限值: -m 内存数值
设置容器的cpu限制信息:--cpu-cpus num –cpu-quota=num –cpu-period=
Docker与传统虚拟机相比:
优势:
docker启动快速,属于秒级别。
docker需要的资源更少,docker在操作系统级别进行虚拟化,docker容器和内核交互,几乎没有性能损耗,性能优于通过Hypervisor层与内核层的虚拟化。
docker更轻量
快速创建、删除
劣势:
与虚拟机相比,docker隔离性更弱
docker的安全性也更弱
docker的集中化管理工具还不算成熟

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):