中括号中表示可选参数
1.查找镜像:docker search 镜像名
docker search -s 30 tomcat //搜索点赞数大于30的tomcat镜像
2.拉取镜像: docker pull [options] 镜像名:版本号
3.查看本机已有的镜像: docker images
docker images -a //列出本地所有镜像包含中间层
docker images -q //只显示镜像id (可以组合使用 docket images -qa)
查看容器: docker ps
docker ps
4.运行镜像:docker run [options] 镜像名[:版本] [镜像在执行时候需要执行的命令]
options:
–name //容器名称
-d //后台启动容器
-p hostport:容器port //指定端口号映射
-i //以交互模式运行容器,通常与-t同事使用 -it
-t //为容器重新分配一个伪输入终端,通常与-i连和使用 -it 如:docker run -it centos /bin/bash
-v 容器目录:宿主机目录 //挂载 后面可跟:ro–容器只读
–privileged=true //报权限错误是加这个参数
5.停止容器: docker stop 容器名or容器id
6.重启一个停止的容器:dokcer restart 容器名
7.删除容器: docker rm 容器id
docker rm -f $(docker ps -a -q) //一次删除多个容器
docker ps -a -q | xargs docker rm //一次删除多个容器
8.删除镜像: docker rmi 镜像id
docker rmi -f 镜像id //强制删除,比如正在使用的镜像
docker rmi -f $(docker images -qa) //删除所有,docker images -qa 返回所有镜像id
9.其它常用命令
docker logs -f -t --tail 容器ID --查看容器日志 -t:加入时间戳 -f:跟随最新的打印日志 --tail 数字:显示最后多少行
docker top 容器ID --查看容器内部进程
docker inspect 容器ID --查看容器内部的细节
docker exec -it 容器id或容器名 /bin/bash --进入容器内部
docker exec -t 容器id或容器名 ls /etc/nginx/ --不进入容器,在nginx容器外部查看目录/etc/nginx
docker cp 容器id:/etc/nginx/nginx.conf /conf --将容器内路径文件,考到宿主机/conf路径下
docker cp /data 容器id:/demo/server --将宿主机文件拷贝到容器的/demo/server路劲下
进入容器内部命令
docker exec -it 容器id /bin/bash
docker目录挂载宿主主机目录
容器中安装vim命令
vim(vi): command not found找不到情况
第一步:apt-get update
第二部:apt-get install vim
查看容器已挂载目录
docker inspect 容器名称 | grep Mounts -A 20
提交容器
docker commit -a="xxxx" -m=" yyyyyy" 容器id 自定义镜像名:自定义版本号 //-a提交人 -m描述
tips:使用docker commit意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑 箱镜像,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根 本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体在操作的。虽 然 docker diff 或许可以告诉得到一些线索,但是远远不到可以确保生成一致镜像的地步。 这种黑箱镜像的维护工作是非常痛苦的。所以通常是不推荐使用docker commit制作镜像
构建镜像
#最后的 . 要注意
#表明构建是上线文为当前目录,尽量要保持该目录足够干净,除构建镜像需要的文件无多余文件,特别是大文件
#如果Dockerfile在当前目录,则不需要-f参数
docker build -t [名称:版本] -f [dockerfile的位置] .
#例如
docker build -t demo:v1 -f /data/demo_dockerfile .