前言
记录一下 docker 常用命令方便查找
Docker可以认为是 vmware 或者 virtualbox
• 镜像可以认为是 xxx.iso。
• 容器可以认为是 virtualbox 运行 xxx.iso 后的系统。
国内镜像加速器:https://www.daocloud.io/mirror#accelerator-doc
登陆镜像仓
1
| $ docker login harbor.test-init.com
|
从镜像仓库拉取镜像
命令: docker pull 仓库+镜像:版本号
1 2
| # eg: $ docker pull registry.docker-cn.com/library/ubuntu:16.04
|
推送本地镜像到镜像仓库
命令: docker push 仓库+镜像:版本号
1 2
| # eg: $ docker push harbor.test.com/deepnet_python/star_face:v1.40
|
删除镜像
通过名字和标签删除
强制删除
1
| $ docker rmi -f dd6f76d9cc90
|
构建镜像
命令:docker build
1 2 3 4
| #eg: $ docker build -f Docker/Dockerfile_face_attribute_cpu -t harbor.meitu-int.com/deepnet/star-predict:v1.0-3 . OPTIONS说明: • -f 根据知道dockerfile构建。不指定默认同级目录Dockerfile
|
运行镜像
命令:docker run
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #eg: $ docker run -i -t -p 3000:3000 ubuntu:14.04 /bin/bash #eg: $ docker run -it --cpuset-cpus="1-2" -e MODELS_PLUGIN="face_detection/20181114.tar;mtcnn/20181127.tar;star_face_recognition/20181225.tar" -p 8896:5000 --entrypoint /usr/bin/python harbor.test-int.com/deepnet/star-predict:v1.0-4 app.py 5000 OPTIONS说明: • -i 显示info级别log信息 • -t 显示控制台 • -p 3000:3000 把容器的3000端口映射到本机3000端口 • -d=true 后台启动docker • -v /data:/data 主机的目录映射到容器目录 • --cpuset-cpus 限制CPU核数 • -e 设置环境变量 • --entrypoint:指定入口点, 格式为 命令位置 + 镜像名以及tag + 命令参数(多个参数空格隔开) • --rm:容器退出时就能够自动清理容器内部的文件系统
|
运行已经退出的容器
1 2 3 4 5 6 7
| $ docker ps -a
$ docker start 容器名或容器ID
$ docker attach 容器名或容器ID
$ docker exec -it 容器名或容器ID /bin/bash (进入正在运行中的程序)
|
创建一个守护态的 Docker 容器,然后使用 docker attach 命令进入该容器。
1 2 3 4 5 6 7 8
| #创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。 $ sudo docker run -itd ubuntu:14.04 /bin/bash
#然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器 $ sudo docker attach 44fc0f0582d9
# 遇到docker attach卡着 解决方法: $ sudo docker exec -it containerID /bin/bash
|
查看容器列表
1 2 3 4 5 6 7 8 9 10
| $ docker ps OPTIONS说明: • -a :显示所有的容器,包括未运行的。 • -f :根据条件过滤显示的内容。 • --format :指定返回值的模板文件。 • -l :显示最近创建的容器。 • -n :列出最近创建的n个容器。 • --no-trunc :不截断输出。 • -q :静默模式,只显示容器编号。 • -s :显示总的文件大小。
|
把容器打成镜像:
命令:docker commit
1 2 3 4 5 6
| $ docker commit 9b5d9f58efe1 luochenxi/docker-dev-init:0.1 说明: • 9b5d9f58efe1 是容器的id • luochenxi (也可以是镜像仓库的地址)是你注册的https://store.docker.com/的名字,如果你没有的话,那需要先注册 • docker-dev-init 是你为该镜像起的名字 • :0.1 是镜像的版本号,默认是latest版本
|
查看构建历史
命令:docker history
1
| $ docker history b16523cedeb6
|
查看到容器的相关信息
查看容器日志
镜像打标签
命令:docker tag
1 2
| #eg: $ docker tag ubuntu:16.04 ubuntu:16.04_newtag
|
容器重命名
命令: docker rename old 容器名 new 容器名
空间不足进行清理
1 2 3 4 5 6 7
| # no space left on device docker
# docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') docker rmi $(docker images | grep "none" | awk '{print $3}')
|