Docker常用命令记录(随时更新)

Docker 常用命令

镜像操作

  • 保存镜像为tar包

    docker save -o <文件名>.tar <镜像名>:<版本号>
    

    例如:

    docker save -o myimage.tar myimage:latest
    
  • 从tar包加载镜像

    docker load -i <文件名>.tar
    

    例如:

    docker load -i myimage.tar
    
  • 查看本地所有镜像

    docker images
    

    可以加上-q只显示镜像ID:

    docker images -q
    
  • 删除指定的镜像

    docker rmi <镜像ID> 或 <镜像名>:<版本号>
    

    例如:

    docker rmi myimage:latest
    
  • 清理悬空的镜像

    docker image prune
    

    可以加上-f强制删除:

    docker image prune -f
    

容器操作

  • 运行容器

    docker run [选项] <镜像名>:<版本号> [命令] [参数...]
    

    例如:

    docker run -d -p 4000:80 --name mynginx nginx:latest
    
  • 查看运行中的容器

    docker ps
    
  • 查看所有容器(包括未运行的)

    docker ps -a
    
  • 停止容器

    docker stop <容器ID> 或 <容器名>
    

    例如:

    docker stop mynginx
    
  • 启动容器

    docker start <容器ID> 或 <容器名>
    

    例如:

    docker start mynginx
    
  • 强制停止容器

    docker kill <容器ID> 或 <容器名>
    

    例如:

    docker kill mynginx
    
  • 删除容器

    docker rm <容器ID> 或 <容器名>
    

    例如:

    docker rm mynginx
    
  • 清理悬空的容器

    docker container prune
    

    可以加上-f强制删除:

    docker container prune -f
    

其他常用命令

  • 查看容器日志

    docker logs <容器ID> 或 <容器名>
    

    例如:

    docker logs mynginx
    
  • 进入运行中的容器

    docker exec -it <容器ID> 或 <容器名> /bin/bash
    

    例如:

    docker exec -it mynginx /bin/bash
    
  • 查看容器的元数据

    docker inspect <容器ID> 或 <容器名>
    

    例如:

    docker inspect mynginx
    
  • 查看Docker的系统信息

    docker info
    
  • 查看Docker的版本信息

    docker version
    
  • 拉取镜像

    docker pull <镜像名>:<版本号>
    

    例如:

    docker pull nginx:latest
    

当然可以,以下是你要求的 Docker 命令:

复制容器内文件到宿主机

  • 从容器复制文件到宿主机
    docker cp <容器ID>:<容器内路径> <宿主机路径>
    
    例如,将容器 mycontainer 中的 /app 目录下的 file.txt 文件复制到宿主机的当前目录:
    docker cp mycontainer:/app/file.txt .
    

从宿主机向容器内复制文件

  • 从宿主机复制文件到容器
    docker cp <宿主机路径> <容器ID>:<容器内路径>
    
    例如,将宿主机当前目录下的 file.txt 文件复制到容器 mycontainer/app 目录下:
    docker cp ./file.txt mycontainer:/app/
    

Dockerfile 打包 Java 应用

创建一个 Dockerfile 文件,用于构建 Java 应用的 Docker 镜像:

# 使用官方 Java 运行环境作为父镜像
FROM openjdk:8-jdk-alpine

# 设置环境变量
ENV JAVA_OPTS=""

# 将本地文件复制到容器中
COPY ./target/myjavaapp.jar /app/

# 指定容器启动后执行的命令
CMD ["sh", "-c", "java $JAVA_OPTS -jar /app/myjavaapp.jar"]

在这个 Dockerfile 中,我们使用了官方的 Java 8 JDK 镜像作为基础镜像,并将本地的 myjavaapp.jar 文件复制到容器中的 /app/ 目录下。最后,我们指定了容器启动后执行的命令,即运行 Java 应用。

Dockerfile 打包前端应用

对于前端应用,我们通常使用 Node.js 作为基础镜像来构建。以下是一个简单的 Dockerfile 示例,用于构建一个基于 Node.js 的前端应用:

# 使用官方 Node.js 运行环境作为父镜像
FROM node:14-alpine

# 设置工作目录
WORKDIR /app

# 将本地文件复制到容器中
COPY . .

# 安装项目依赖
RUN npm install

# 构建前端应用
RUN npm run build

# 使用 Nginx 作为服务器
FROM nginx:alpine
COPY --from=0 /app/dist /usr/share/nginx/html

# 暴露 80 端口
EXPOSE 80

# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

在这个 Dockerfile 中,我们首先使用 Node.js 镜像来安装依赖并构建前端应用。然后,我们使用 Nginx 镜像作为基础,将构建好的前端文件复制到 Nginx 的静态资源目录下,并启动 Nginx 服务。

要构建这些镜像,你可以在包含 Dockerfile 的目录下运行以下命令:

docker build -t myjavaapp .
docker build -t myfrontendapp .

这里 -t 参数用于指定镜像名称,. 表示当前目录包含 Dockerfile。构建完成后,你可以使用 docker run 命令来启动你的 Java 应用或前端应用容器。

posted @ 2024-10-24 15:36  无为而和  阅读(8)  评论(0编辑  收藏  举报