Docker常用命令

docker镜像仓库
docker_hub网站:https://hub.docker.com

镜像相关命令

# 镜像拉取
docker pull nginx

# 查看本地镜像
docker images

# 删除镜像(通过指定名称或者IMAGE ID删除)
docker rmi nginx:latest

# 将镜像打成tar包
docker save -o nginx.tar nginx:latest

# 将tar文件加载为镜像文件
docker load -i nginx.tar

容器相关命令

# 创建运行一个容器 --name 指定名称 -p 指定端口映射 宿主机端口:容器端口 -d 后台运行 最后指定镜像名称
docker run --name nginxContainer -p 80:80 -d nginx

# 查看容器状态
docker ps -a

# 查看容器运行日志 -f 持续跟踪日志
docker logs -f nginxContainer

# 进入容器 -it 创建一个shell允许我们交互 bash 进入容器后运行的命令 进入之后可以通过exit退出
docker exec -it nginxContainer bash

# 停止容器
docker stop nginxContainer

# 启动停止的容器
docker start nginxContainer

# 删除容器 前提是停止之后的容器 -f 强制删除运行中的容器
docker rm -f nginxContainer

# 暂停容器
docker pause nginxContainer

# 运行容器
docker unpause nginxContainer

# 从容器内拷出文件到宿主机 容器ID/名称:文件路径 要拷贝到宿主机的路径
docker cp nginxContainer:/etc/conf/conf.yml  /usr/etc

# 从宿主机拷贝文件到容器内 要拷贝到宿主机的路径 容器ID/名称:文件路径
docker cp /usr/etc/conf.yml nginxContainer:/etc/conf

数据卷相关命令

# 创建一个数据卷
docker volume create html

# 显示一个或多个数据卷信息
docker volume inspect html

# 列出所有的数据卷
docker volume ls

# 删除所有本地未使用的数据卷
docker volume prune

# 删除一个或多个指定的数据卷
docker volume rm html

# 挂载数据卷到容器 -v 数据卷名称:容器内路径 或 -v 宿主机目录:容器内目录 或 -v 宿主机文件:容器内文件
docker run --name nginxContainer -p 80:80 -v html:/usr/share/nginx/html -d nginx

Dockerfile案例 详细语法官网见
https://docs.docker.com/engine/reference/builder
FROM                    指定基础镜像
ENV                       设置环境变量,指令中可以使用
COPY                    拷贝本地文件到镜像中
RUN                       执行命令
EXPOSE                暴露端口,给使用者看的
ENTRYPOINT        镜像中应用的启动命令,容器运行时调用

# dockerfile案例1
# 指定基础镜像
FROM ubuntu:16.04

# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./applicaiotn.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR && tar -xf ./jdk8.tar.gz && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8888

# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar


# dockerfile案例2
FROM java:8-alpine
COPY ./application.jar /tmp/app.jar
EXPOSE 8888
ENTRYPOINT java -jar /tmp/app.jar
# 通过dockerfile生成镜像 自动到.(当前路径)路径下找名称为为Dockerfile的文件生成镜像
docker build -t project:1.0 .

DockerCompose案例 docker-compose.yml
DockerCompose能够帮助我们快速部署,相当于一次运行多个docker run

# 案例1
version: "3.8"

services: # 相当于运行docker run
  mysql:
  	image: mysql:5.7.25
  	environment:
  	  MYSQL_ROOT_PASSWORD: root
  	volumes:
  	  - /tmp/mysql/data:/var/lib/mysql
  	  - /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
 web: # 相当于运行docker build + docker run
   build: .
   ports:
    - 8090:8090
# 案例2
version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      MODE: standalone
    ports:
      - "8848:8848"
  mysql:
    image: mysql:5.7.25
    environment:
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql"
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"
# 运行Compose文件 自动到当前路径下找名称为docker-compose.yml的文件并执行
docker-compose up -d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值