Docker常用命令整理

DockerHub

Docker 安装启动

  • 安装Docker:yum install docker
  • 启动Docker:systemctl start docker
  • 查看Docker状态:systemctl status docker

镜像命令

  • 查看镜像:docker images
  • 由Dockerfile构建镜像:
    • docker build -t 镜像名:版本号 Dockerfile文件所在目录
    • docker build -t senyint/sc-rest-gateway:1.0 .
  • 删除镜像:
    • docker rmi xxx(镜像ID)
    • docker rm -f abf19866f812
  • 拉取镜像:
    • docker pull xxx(镜像名)
    • docker pull nacos/nacos-server
    • docker pull oraclelinux:7.9
  • 查看镜像的启动命令:docker inspect oraclelinux:7.9(镜像名字)

容器命令

  • 查看容器:
    • 运行中容器:docker ps
    • 所有容器:docker ps -a
  • 将镜像运行成容器:
    • docker run -d(后台运行) --name 容器名字 -e 容器环境变量 -p 物理机端口:容器端口 -m 容器运行内存 镜像名字:镜像版本号
    • docker run -d --name sc-rest-gateway -e NACOS_SERVER=‘49.232.199.205’ -p 8888:8888 -p 5055:5055 -m 400m senyint/sc-rest-gateway:1.0
    • 启动命令覆盖dockerfile中cmd(java -jar … xxx.jar):docker run -d --name oauth-server -p 6001:6001 -p 5056:5056 senyint/oauth-server:latest java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5056 oauth-server.jar
  • 停止运行容器:
    • docker stop xxx(容器ID)
    • docker stop abf19866f812
  • 重启容器:
    • docker restart xxx(容器ID)
    • docker restart abf19866f812
  • 删除容器:
    • docker rm -f xxx(容器ID)
    • docker rm -f abf19866f812
  • 批量删除容器:
    • 删除所有停止的: docker ps -a | grep exited -i | awk ‘{print$1}’ | xargs docker rm -f
    • 删除搜索的:docker ps -a | grep senyint -i | awk ‘{print$1}’ | xargs docker rm -f
  • 进入容器:
    • docker exec -it eb104029d8ff /bin/bash
    • docker exec -it sc-rest-gateway sh
    • 用 exec 如果从这个容器退出,容器不会停止
  • 退出容器不关闭:exit
  • 查看容器日志:docker logs -f --tail 100 a1b078834bf9(容器ID)
  • 登录容器redis:
    • docker exec -it redis bash
    • redis-cli -h localhost -p 6379 -a admin --no-auth-warning

Dockerfile

FROM jre8:alpine3.9
WORKDIR /root
COPY sc-rest-gateway.jar .
ENV NACOS_SERVER=49.232.199.205 \
        NACOS_PORT=8848 \
        NACOS_NAMESPACE=e8420441-fdc8-4730-b5fe-e282348d094c \
        spring.profiles.active=prod \
        server.port=8888
CMD ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5055","sc-rest-gateway.jar"]
  • FROM : 基础镜像
  • WORKDIR : 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。
  • COPY :从物理机目录中复制文件或者目录到容器里指定路径
  • ENV :容器环境变量
  • CMD :容器启动命令,为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

Docker Compose

  • Compose 是用于定义和运行多容器 Docker 应用程序的工具。服务编排工具,一个命令创建启动所有服务,一个命令关闭删除所有服务。

命令

  • 批量运行容器 : docker-compose -f yml的路径 up -d
  • 批量停止:docker-compose -f yml文件 down

yml文件配置

  • docker-compose-web.yml
  • 以下文件内容运行命令之后会启动这两个配置好的服务,运行成容器。
# 版本号
version: '1'
services:
  # senyint/sc-rest-gateway 容器
  sc-rest-gateway: # 服务名,注意不能有特殊符号比如斜杠 /
    image: senyint/sc-rest-gateway:latest # 镜像名:版本号
    ports: # 容器物理机端口映射
      - "8888:8888"
    container_name: sc-rest-gateway # 容器名
    environment: #环境变量
      NACOS_SERVER: 49.232.199.205
      NACOS_PORT: 8848 
      NACOS_NAMESPACE: e8420441-fdc8-4730-b5fe-e282348d094c 
      spring.profiles.active: dev
      server.port: 8888
    deploy:
      resources:
        limits:
          memory: 300m # 内存占用

  # senyint/oauth-server 容器
  oauth-server:
    image: senyint/oauth-server:latest
    ports:
      - "6001:6001"
      - "5057:5057"
    container_name: oauth-server
    environment:
      NACOS_SERVER: 49.232.199.205 
      NACOS_PORT: 8848 
      NACOS_NAMESPACE: e8420441-fdc8-4730-b5fe-e282348d094c 
      spring.profiles.active: dev
      server.port: 6001
    deploy:
      resources:
        limits:
          memory: 400m
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值