以下为Linux操作系统(CentOS),连接虚拟机的终端软件可以使用MobaXterm
基础命令:
PS:不知道命令具体怎么写,有什么参数的,可以后面接上--help查看(适用于所有命令)
-
从镜像仓库拉取镜像到本地
docker pull 镜像名 -
本地上传镜像到镜像仓库
docker push -
查看所有本地镜像
docker images -
删除镜像
docker rmi 镜像名:版本号 -
自定义镜像:dockerfile文件使用如下命令构建
docker build -
将镜像保存到本地变成压缩文件
docker save -o 文件名.后缀 镜像名:版本号 -
将压缩文件加载成镜像
docker load -
创建并运行容器(运行后显示容器ID)
docker run -d(后台运行) --name(容器名) -p(端口映射) 80:80(宿主机:容器内) -e(环境变量) 镜像名(不加版本默认最新) -
停止容器内的进程
docker stop 容器名 -
启动容器内停止的进程
docker start -
查看当前容器的运行状态
docker ps -
删除容器
docker rm [-f(强制删除,运行中的也能删)] -
查看容器运行日志
docker logs -
进入容器内部(进入后
exit可以退出来)docker exec -it(添加一个可输入的终端) 容器名 bash(命令行) -
进入root目录下的.bashrc文件设置命令别名
vi ~/.bashrcsource ~/.bashrc (使更改后的生效) -
查看容器详情
docker inspect
数据卷
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。映射示例参考下图:

数据卷常见命令:
-
创建数据卷
docker volume create -
查看所有数据卷
docker volume ls -
删除指定数据卷
docker volume rm -
查看某个数据卷的详情
docker volume inspect -
清除所有未使用的数据卷
docker volume prune -
数据卷只能在创建容器时挂载,已经存在的容器没创建数据卷的,会默认创建一个匿名数据卷(名字是字母数字随机生成的),
在执行
docker run命令时,使用-v 数据卷:容器内目录可以完成数据卷挂载,创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷,示例如下:
docker run -d --name nginx -p 80:80 -v html:/user/share/nginx/html(镜像仓库里查的) nginx -
要打开宿主机文件操作数据卷时显示没有权限的话,需要切换到lib目录下 然后输入
chmod 777 docker就可以有docker文件夹访问权限 -
本地目录挂载:与数据卷挂载基本相同,也是在执行
docker run命令时,使用-v 本地目录:容器内目录可以完成本地目录挂载,注意:本地目录必须以 “/” 或 “./” 开头,如果直接以名称开头,会被识别为数据卷而非本地目录,示例代码如下:
本地目录要事先创建好,容器内目录去镜像仓库里查

自定义镜像
先简单了解一下镜像的结构:一个完整的镜像由多个层(Layer)组成,像多张纸叠在一起组成书那样,每一层有其负责的功能,添加安装包、依赖、配置等,每次操作都会形成新的一层。多个镜像中会有相似或完全一致的层,称为基础镜像(BaseImage),如应用依赖的系统函数库、环境、配置、文件等,方便在构建时直接复用。此外,还有入口(Entrypoint),它是镜像运行入口,一般是程序启动的脚本和参数。
Dockerfile常见命令:
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将
来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:
-
FROM:指定基础镜像,示例:
FROM centos:7 -
ENV:设置环境变量,示例:
ENV key value -
COPY:拷贝本地文件到镜像的指定目录,示例:
COPY ./jre11.tar.gz /tmp -
RUN:执行Linux的shell命令,一般是安装过程的命令,示例:
RUN tar -zxvf /tmp/jre11.tar.gz && EXPORTS path=/tmp/jre11:$path -
EXPOSE:指定容器运行时监听的端口,是给镜像使用者看的,示例:
EXPOSE 8080 -
ENTRYPOINT:镜像中应用的启动命令,容器运行时调用,示例:
ENTRYPOINT java -jar xx.jar -
构建镜像:
docker build -t myImage:1.0 .(指当前目录)-t:给镜像起名,repository:tag 格式,tag默认latest
网络
加入自定义网络的容器才可以通过容器名相互访问
网络相关常见命令:
-
创建一个网络
docker network create -
查看所有网络
docker network ls -
删除指定网络
docker network rm -
清除未使用的网络
docker network prune -
使指定容器连接加入某网络
docker network connect -
使指定容器连接离开某网络
docker network disconnect -
查看网络详细信息
docker network inspect
DockerCompose
Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮
助我们实现多个相互关联的Docker容器的快速部署,其格式与docker run十分相似,如下:

docker compose 命令格式:docker compose [OPTIONS] [COMMAND]
Options:
- -f:指定compose文件的路径和名称
- -p:指定project名称
Commands:
- up:创建并启动所有service容器
- down:停止并移除所有容器、网络
- ps:列出所有启动的容器
- logs:查看指定容器的日志
- stop:停止容器
- start:启动容器
- restart:重启容器
- top:查看运行的进程
- exec:在指定的运行中容器中执行命令