镜像(images)
- 查看
- 查看本地所有镜像
docker images -a
- 查看本地所有镜像的id
docker images -q
- 查看镜像具体信息
docker image inspect [IMAGE:TAG]/[IMAGE ID]
- 查看镜像构建过程
docker image history [IMAGE:TAG]/[IMAGE ID]
- 拉取
- 拉取镜像
docker pull [IMAGE]
- 拉取指定版本镜像
docker pull [IMAGE:TAG]
- 删除
- 删除镜像
docker rmi -f [IMAGE:TAG]/[IMAGE ID]
- 删除本地所有的镜像
docker rmi -f $(docker images -q)
容器(container)
- 查看
- 查看本地所有正在运行的容器
docker ps
- 查看本地所有正在运行的容器的id
docker ps -q
- 查看本地所有的容器
docker ps -a
- 查看本地所有容器的id
docker ps -aq
- 创建
- 创建容器
docker run [IMAGE]
- 创建并进入容器
docker run -it [IMAGE] /bin/bash
- 后台创建容器,并且设置名字和端口号
docker run -d --name [name] -p [host port]:[container port] [IMAGE]
- 用后即删
docker -it --rm [IMAGE]
- 退出
- 停止容器并退出
exit
- 不停止容器并退出
Ctrl + P + Q
- 进入
- 以交互模式进入一个正在运行的容器
或docker exec -it [CONTAINER] /bin/bash
区别在于,docker attach [CONTAINER]
docker exec
进入容器并开启一个新的终端
docker attach
进入容器正在运行的终端 - 删除
- 删除指定id容器(容器处于停止状态)
docker rm [CONTAINER ID]
- 强制删除指定id容器(容器处于运行状态)
docker rm -f [CONTAINER ID]
- 删除所用容器
docker rm -f $(docker ps -aq)
- 提交
docker commit -a="[author]" -m="[message]" [CONTAINER] [IMAGE:TAG]
例如,
docker commit -a="kimi" -m="add a new feature" 6dc63a3d474f tomcat_kimi:1.0
- 网络
- 查看容器网络
docker exec [CONTAINER] ip addr
- 日志
- 查看容器日志
docker logs -tf [CONTAINER]
- 进程
- 查看容器进程信息
docker top [CONTAINER]
- CPU & Memory
- 查看容器CPU、Memory占用信息
docker status
- 查看某个容器的CPU、Memory占用信息
docker status [CONTAINER]
- 元数据
- 查看容器元数据
通过查看元数据,可以看到image和container完整的iddocker inspect [CONTAINER]
- 拷贝
- 将文件从容器内拷贝至主机
例如,docker cp [CONTAINER]:[src] [dst]
docker cp faa63637bfef:/home/kimi.txt /home
- 打开可视化界面 portainer
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
- 挂载
- 普通挂载
将Docker容器里的docker run -v [HOST src]:[CONTAINER src] [IMAGE]
src
挂载至主机的dst
,利用docker insepct [CONTAINER ID]
,查找Mounts
字段,查看挂载信息。- 匿名挂载(不推荐使用)
docker run -v [CONTAINER dst] [IMAGE]
-v
后只写container内部的路径- 具名挂载
所有Docker容器的卷,在没用指定目录的情况下,都是挂载在docker run -v [VOLUME NAME]:[CONTAINER dst] [IMAGE]
/var/lib/docker/volumes/XXXX/_data
目录下。 - 数据卷容器
创建容器时,添加--volumes-from
命令,用于不同容器之间的数据流动。
docker run -d --volumes-from [SRC CONTAINER] [IMAGE]
例如
docker run -d --volumes-from tomcat01 tomcat
网络
- 查看
- 查看本地所有网络
docker network ls
- 查看网络具体信息
docker newtork inspect [NETWORK]
- 创建
docker network create --driver [driver] --subnet [subnet] --gateway [gateway] [NAME]
- 连接网络和容器
docker network connect [NETWORK] [CONTAINER]
Dockerfile
Dockerfile用来构建Docker镜像的文件。
FROM # 基础镜像
MAINTAINER # 镜像作者,姓名+邮箱
ENV # 构建镜像时设置环境变量
RUN # 构建镜像时需要运行的命令
ADD # 将文件拷贝到镜像
COPY # 将文件拷贝到镜像
WORKDIR # 镜像的工作目录
VOLUME # 镜像挂载的目录
EXPOSE # 声明容器暴露的端口
RUN # 运行
CMD # 容器启动时需要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 容器启动时需要运行的命令,可以追加命令
- 创建镜像
docker build -f [Dockerfile] -t [IMAGE:TAG] .
如果Dockerfile在当前文件夹中,那么-f [Dockerfile]
可以省略。