Skip to content

记录了 docker 常用命令

Docker

常用命令

构建 Nginx,指向目录的 HTML

shell
docker run --name {容器名称} -v {目标地址}:/usr/share/nginx/html:ro -d -p {暴露端口}:80 nginx

# demo
docker run --name da1 -v /Users/ddd/D/core/nginx-utils:/usr/share/nginx/html:ro -d -p 5554:80 nginx

构建 Nginx,指向目录的 HTML,并配置代理

shell
docker run --name ddd233 -v {目标 html 地址}:/usr/share/nginx/html:ro -v {目标 conf 地址}:/etc/nginx/nginx.conf:ro -d -p 5555:5555 nginx

# demo
docker run --name ddd233 -v /Users/ddd/D/feiyu/eai3/integration-ui3/dist:/usr/share/nginx/html:ro -v /Users/ddd/D/core/nginx-utils/eai-proxy.conf:/etc/nginx/nginx.conf:ro -d -p 5555:5555 nginx

类型

镜像

  • 拉取镜像:docker pull name[:TAG]
  • 查看当前的镜像:docker image ls
  • 查看镜像历史修改记录:docke**r** history IMAGE
  • 运行镜像,并命名:docker run --name webserver -d -p 80:80 nginx
  • docker exec -it webserver bash
  • 生成镜像:docker build -t IMAGE {执行的上下文路径}

Dockerfile

  • copy

    • 复制当前上下文的所有文件到对应目录
    • COPY [--chown=<user>:<group>] <源路径>... <目标路径>
  • ADD

    • 复制文件,并进行解压
    • ADD [--chown=<user>:<group>] <源路径>... <目标路径>
  • CMD

    • 指定默认的容器主进程的启动命令的
    • shell 格式:CMD <命令>
    • exec 格式:CMD ["可执行文件", "参数1", "参数2"…]
  • ENTRYPOINT

    • 和 CMD 类似功能,不过可以在启动镜像时,将传入的参数给到 ENTRYPOINT

      shell
      docker run test -i
      -> ENTRYPOINT ['curl', 'http://baidu.com', '-i'] # 多了传入的命令
    • shell 格式:CMD <命令>

    • exec 格式:CMD ["可执行文件", "参数1", "参数2"…]

  • ENV

    • 设置镜像的环境变量
    • ENV <key> <value>
    • ENV <key1>=<value1> <key2>=<value2>…
  • VOLUME

    • 定义卷
    • VOLUME ["<路径1>", "<路径2>"…]
    • VOLUME <路径>
  • WORKDIR

    • 修改当前的工作路径
    • WORKDIR <PATH>
  • USER

    • 修改当前用户
    • USER <用户名>[:<用户组>]

容器

  • 运行容器:docker run IMAGE
    • -d
      • 使该容器启动后进入后台
    • -p
      • 随机映射一个端口到内部容器开放的网络端口
      • 将服务器的 4444 端口指向容器的 80 端口:-p 4444:80
  • 停止容器:docker stop CONTAINER-ID
  • 删除容器:docker rm CONTAINER-ID
  • 查看容器进程:docker ps
  • 查看当前运行容器:docker container ls
  • 查看容器日志:docker container logs [container ID or NAMES]
  • 执行命令:docker exec [options] {container id} {bash}
    • exec 命令不会因为输入终止而把容器进程关闭;但 attach

Volume

  • 创建 volume: docker volume create {name}
  • 查看 volume 信息:docker volme inspect {name}

存储概念

QA

arm 架构问题

添加 --platform "linux/amd64" 声明平台

docker run --name {} -v {}:/usr/share/nginx/html:ro -p 8088:80 -d nginx

docker run --name test-js -v /Users/ddd/Downloads:/usr/share/nginx/html:ro -p 8088:80 -d nginx