镜像
# 拉取镜像
docker pull 镜像名:tag
# 查看本地镜像
docker images
# 删除本地镜像
docker rmi 镜像名
# 镜像导入导出
docker save -o 导出的路径 镜像ID
docker load -i 镜像文件
# 修改镜像名称
docker tag 镜像ID 镜像名:tag
容器
默认容器目录:/var/lib/docker
- 运行
# 简单操作 docker run 镜像ID|镜像名:tag # 常用参数 docker run -d -p 宿主机端口:容器端口 [--restart=always] --name 容器名称 镜像ID|镜像名:tag
- -d:后台运行
- -p:端口映射
- -i: 以交互模式运行容器,通常与 -t 同时使用
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
- --name:指定容器名称
- --restart:容器自启动
- 查看正在运行的容器
docker ps -[qa]
- -a:查看所有容器,包括面积没有运行的
- -q:只查看容器ID
- 查看容器日志
docker logs -f 容器ID
- -f:可以滚动查看
-
进入到容器内部
docker exec -it 容器ID bash
- 删除容器
docker stop 容器ID docker stop $(docker ps -qa) docker rm 容器ID # 删除所有容器 docker rm $(docker ps -qa)
-
从容器创建一个新的镜像
docker commit -a "提交的镜像作者" -m "提交时的说明文字" 容器ID 镜像名:tag
Docker应用
- 将宿主机的文件复制到容器内部
docker cp 文件名称 容器ID:容器内部路径
- 数据卷
将数据机的目录映射到容器目录- 创建数据卷
docker volume create 数据卷名称 # 默认目录:/var/lib/docker/volumes/数据卷名称/_data
- 查看数据卷详细信息
docker volume inspect 数据卷名称
- 查看全部数据卷
docker volume ls
- 删除数据卷
docker volume rm 数据卷名称
-
应用数据卷
# 如果数据卷不存在,docker会自动创建,会将容器内部的文件存到本地 docker run -v 数据卷名称:容器内部路径 镜像ID # 直接一个路径作为数据卷的存放位置 docker run -v 路径:容器内部路径 镜像ID
- 创建数据卷
自定义镜像
新建Dockerfile
文件
FROM 镜像
COPY 宿主机路径 目标路径
WORKDIR 工作目录路径
CMD (在docker run时运行, 而非docker build, 仅最后一个生效)
# RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN (docker build 过程中要运行的命令)
ENV key1=value1
ENV key2=value2
VOLUME ["run的时候没有使用-v绑定匿名卷的话,会在/var/lib/docker/volume自动创建目录", "路径2"]
CMD shell命令
docker build -t 镜像名 .