Docker基础
2018-12-30 本文已影响0人
蚂蚁闲游
常用命令
命令 | 用途 |
---|---|
docker pull | 获取image |
docker build | 创建 image |
docker images | 列出image |
docker run | 运行 container |
docker ps | 列出container |
docker rm | 删除container |
docker rmi | 删除image |
docker cp | 在host和container之间拷贝文件 |
docker commit | 保存改动为新的image |
docker system df
以上命令来便捷的查看镜像、容器、数据卷所占用的空间
docker image ls 和 docker images 是一致的, 查看镜像列表;
docker image ls -f dangling=true
专门显示这类镜像, 虚悬镜像(dangling image) :
这个镜像原本是有镜像名和标签的,原来为 mongo:3.2,随着官方镜像维护,发布了新版本后,重新 docker pull mongo:3.2 时,mongo:3.2 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 <none>。除了 docker pull 可能导致这种情况,docker build 也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none> 的镜像。
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
docker image prune 删除虚悬镜像;
docker image ls -a, 可以显示中间层镜像;
列出部分镜像的方法, 通过docker image ls 扩展实现:
- docker image ls 仓库名, 可以显示指定名字的所有镜像
- docker image ls 仓库名:标签, 显示指定仓库名和标签的镜像;
- docker image ls -f since=mongo:3.2 -f 表示-filter的缩写, 过滤条件。 之后, befor 之前。。
- docker image ls -f label=com.example.version=0.1 通过label查询
- docker image ls --format "{{.ID}}:{{.Tag}}:{{.Repository}}"
- docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
- docker image ls --digests
- docker image rm $(docker image ls -q redis) 删除所有redis的镜像
- docker image rm $(docker image ls -q -f before=mongo:3.2) 删除所有mongo:3.2之前的镜像
docker exec 可以使用这个命令进入到容器。
$ docker exec -it webserver bash
root@3729b97e8226:/# echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit
Dockerfile语法
命令 | 用途 |
---|---|
FROM | base image |
RUN | 执行命令 |
ADD | 添加文件 |
COPY | 拷贝文件 |
CMD | 执行命令 |
EXPOSE | 暴露端口 |
WORKDIR | 指定路径 |
MAINTAINER | 维护者 |
ENV | 设定环境变量 |
ENTRYPOINT | 容器入口 |
USER | 指定用户 |
VOLUME | mount pont |