avatar

Docker常用命令

前言
记录一下 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中国上拉取

推送本地镜像到镜像仓库

命令: docker push 仓库+镜像:版本号

1
2
# eg:
$ docker push harbor.test.com/deepnet_python/star_face:v1.40

删除镜像

通过名字和标签删除

1
$ docker rmi fron:tag

强制删除

1
$ docker rmi -f dd6f76d9cc90 # dd6f76d9cc90 容器ID

构建镜像

命令: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 # b16523cedeb6 容器ID

查看到容器的相关信息

1
$ docker inspect 容器id

查看容器日志

1
docker logs 容器id

镜像打标签

命令: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

## 清除-- None的docker images
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}')
文章作者: luochenxi
文章链接: https://luochenxi.github.io/2019/03/15/yuque/Docker%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kirio

评论