文章来自于 CSDN
docker常用命令分类
常用命令
docker run -d --name express-docker-demo --restart=always -p 3005:3004 -v /data/reistry:/var/lib/reistry express-demo命令-d:后台运行容器,只返回一个ID--restart=always:自动启动容器--name express-docker-demo:命名为express-docker-demo-p 3005:3004:映射3004端口为3005端口,也可以映射多个接口,格式是-p newport:oldport -p newport:oldport-v /data/reistry:/var/lib/restry:将目录/var/lib/restry映射成/data/reistryexpress-demo:镜像名-------------------------------------------------------------------------------------------docker stats 容器名:获取容器的CPU/内存/网络等信息docker top 容器名:可以知道当前容器运行的进程信息docker port 容器名:可以查看当前容器的端口映射信息(多个端口映射就会显示多条)docker exec -it 容器名 bash:以bash登陆至当前的容器中(进入某个容器并可以使用ls等linux命令)-i:交互式操作,-t:终端docker diff 容器名:可以查看到容器的文件一致或是不一致 inspect(查看容器的信息,docker inspect express-docker-demo | grep -i memory) update(更新容器信息,docker update -m 256m express-docker-demo更新内存至256m) cp(拷贝文件,容器与宿主机器互相拷贝文件) save(将镜像导出至tar文件,docker save express-demo > express-dev.tar) load(将tar文件导成镜像文件,docker load < express-dev.tar) export(把容器保存成tar文件) import(把tar文件导出至镜像列表) 注:export/import与save/load的作用相似,推荐使用save/load
Valume容器间共享数据docker run -d -v/web-data:/tmp:ro --name data-container express-demo容器tmp目录映射为宿主机的web-data目录,即宿主机可以读取数据,ro为只读的docker run -d --volumes-from data-container --name web-container appsdocker run -d --volumes-from data-container --name web-container-2 apps 创建两个容器,volume来自于第一个容器 后面两个容器使用命令docker exec -it web-container ls /tmp就可以读取到第一个容器的文件(设置为只读的就是只读的)
docker images 可以查看到所有本地的镜像,会有一个名称为None的镜像,为虚悬镜像,一般是可以直接删除的,如果需要查看,可以使用命令docker images -f dangling=true删除此类镜像,docker rmi $(docker images -q -f dangling=true)
docker images -a 查看中间层镜像,也是无标签镜像,但是其他镜像所依赖的镜像,这类镜像不应该删除,否则其他上层镜像因为丢失依赖而出错 docker images 可以列出所有镜像 docker images ubuntu:16:04 列出指定仓库名和标签 docker images -f since=mongo:3.2 列出mongo 3.2之后的镜像(f代表的是filter) docker images -f before=mongo:3.2 列出mongo 3.2之前的镜像 docker images -f label=com.example.version=0.1 通过label来进行过滤 docker images -q 只列出镜像的ID(有时帮助删除镜像) docker images --format "{ {.ID}}: { {.Repository}}" 会直接列出镜像结果,并且只包含镜像ID和仓库名
docker exec -itd ubuntu_bash bash在某个窗口运行命令,并且使用终端的交互式操作,并且如果需要等待很长时间,也会很快返回,不加d则会运行完成后才返回 进入至某个容器运行了命令后,需要返回,直接使用exit即可返回
1.停止所有的container,这样才能够删除其中的images:docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令:docker rm $(docker ps -a -q)2.查看当前有些什么imagesdocker images3.删除images,通过image的id来指定删除谁docker rmi 想要删除untagged images,也就是那些id为的image的话可以用docker rmi $(docker images | grep "^ " | awk "{print $3}")要删除全部image的话docker rmi $(docker images -q)