常见命令

dockerfile
docker pull    下载镜像到本地
docker images 查看本地镜像列表
docker save 保存镜像
docker load 下载镜像
docker rmi 删除镜像
docker push 上传镜像到镜像仓库
docker run 创建并运行容器
docker stop 停止容器
docker start 启动容器
docker ps 查看容器状态
docker rm 删除容器
docker logs 查看容器日志
docker exec 进入容器内部

命令别名

找到root目录下.bashrc文件

bash
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'

使命令生效

bash
source ~/.bashrc

数据卷

数据卷是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁

假设在docker nginx中创建html目录,其对应宿主机文件系统位置为

/var/lib/docker/volumes/html/_data

命令 说明 文档地址
docker volume create 创建数据卷 docker volume create
docker volume ls 查看所有数据卷 docker volume ls
docker volume rm 删除指定数据卷 docker volume rm
docker volume inspect 查看某个数据卷的详情 docker volume inspect
docker volume prune 清除数据卷 docker volume prune
  • 执行docker run 命令时,使用 -v数据卷:容器内目录 可以完成数据卷挂载
  • 当创建容器时,如果挂在里数据卷且数据卷不存在,会自动创建数据卷

示例:

dockerfile
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

本地目录

在执行docker run命令时,如果我们不写挂载,系统会默认挂载匿名卷,但是生成的名字太长,文件目录太深,不易于操作

在执行docker run 命令时 使用-v 本地目录:容器内目录 可以完成本地目录挂载

本地目录必须以“/” 或”./“开头,如果以名称开头,会被识别为数据卷而非本地目录

  • -v mysql:/var/lib/mysql 会被识别一个数据卷叫mysql
  • -v /mysql:/var/lib/mysql 会被识别为当前目录下的mysql目录

DockerFile

DockerFile就是一个文本文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像。将来DOcker可以根据Dockerfile帮我们来构建镜像,常见指令如下

指令 说明 示例
FROM 指定基础镜像 FROM centos:6
ENV 设置环境变量,可在后面指令使用 ENV key value
COPY 拷贝本地文件到镜像的指定目录 COPY ./jrell.tar.gz /tmp
RUN 执行linux的run命令,一般是安装过程的命令 RUN tar -zxvf /tmp/jrell.tar.gz && EXPORTS path=/tmp/jrell:$path
EXPOSE 指定容器运行时监听的端口,是给镜像使用者看的 EXPOSE 8080
EXTRYPOINT 镜像中应用启动命令,容器运行时调用 ENTRYPOINT java -jar xx.jar

网络

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

命令 说明
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容器的快速部署。