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 应用或前端应用容器。