docker基本命令

镜像命令语句

查看镜像

查看镜像:docker images #查看所用本地的主机上的镜像

  • -a--all: 显示所有镜像(包括中间镜像)。

  • --digests: 显示镜像的摘要信息。

  • --no-trunc: 不截断输出,完整显示所有信息。

  • --quiet-q: 只输出镜像的 ID。

如:-aq就是查出所有镜像的id。

卸载docker

卸载docker:

卸载依赖:yum remove docker-ce docker-ce-cli containerd.io

删除资源:rm -rf/var/lib/docker #/var/lib/docker docker的默认工作路径

帮助命令

帮助命令:docker version #docker版本信息

docker info #显示docker的系统信息,包括镜像和容器数量

docker 命令 --help #帮助命令

搜索镜像

docker search mysql #搜索镜像
docker pull 镜像名[:tag] #下载镜像,如果不写tag,默认是latest,建议写。 如docker pull mysql:5.7

删除镜像、容器

docker rmi -f 容器id #删除指定容器

docker rmi -f 容器id 容器id 容器id ...#删除多个容器

docker rmi -f $(docker images -aq)#删除全部的容器

  • ``: 指定要删除的镜像名称。

  • -f--force: 强制删除镜像,即使有容器正在使用该镜像也会删除。

容器命令语句

新建容器并启动

docker run [可选参数] image

#参数

--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器

-d 后台方式运行

-e 环境配置修改

-it 使用交互方式运行,进入容器查看内容

-p 指定容器的端口 -p 8080:8080

-p ip:主机端口:容器端口

-p 主机端口:容器端口(常用)

-p 容器端口

-P 随机指定端口
#测试,自动并进入容器 docker run -it centos /bin/bash #-it是交互,交互要有控制台,所以选择centos上的一个控制台,/bin/bash或/bin/sh

复制代码
ls查看容器的centos,基础版本,很多命令都是不完善的

#从容器中退回主机

exit

列出所有的运行的容器

docker ps 命令 #列出当前正在运行的容器

-a #列出当前正在运行的容器+带出历史运行过的容器

-n=? #显示最近创建的容器

-q #只显示内容的编号

退出容器

exit#直接容器停止并退出

ctrl+P+Q #容器不停止退出

删除容器

#删除容器

docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f

docker rm -f $(docker ps -aq) #删除所有的容器

docker ps -a -q|xargs docker rm #删除所有的容器

启动和停止容器的操作

docker start 容器id #启动容器

docker restart 容器id #重启容器

docker stop 容器id #停止当前正在运行的容器

docker kill 容器id #强制停止当前容器

后台启动容器

#命令 docker run -d 镜像名!

如:docker run -d centos,问题docker ps,发现centos停止了

#常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

#nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

docker logs -f -t --tail 容器

docker logs

可选参数: -t #打印时间戳 -f #实时追踪日志

--tail number #显示指定的日志条数

--tf #显示日志

--tail number #要显示日志条数

#自己编写一段shell脚本

docker run -d centos /bin/sh -c"while true;echo kuangshen;sleep 1;done"

查看容器中的进程信息

docker top 容器id

进入当前正在运行的容器
复制代码
我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

#命令

方式一:docker exec -it 容器id bashShell

#进入容器后开启一个新的终端,可以在里面操作(常用)

方式二:docker attach 容器id

#进入容器正在执行的终端,不会启动新的进程

从容器中手动拷贝文件到主机中

docker cp 容器ID:容器内文件路径 目的主机路径

如:假设基本文件在webapps.dist下,如果需要用的话将其中内容拷贝到webapps下就行

  1. cd webapps.dist/

  2. ls #发现有如ROOT、docs、example等文件

  3. cd..

  4. cp webapps.dist/* webapps #将webapps.dist下所有文件拷贝到webapps下

dockerfile的指令

Dockerfile 是一种文本文件,用于定义构建 Docker 镜像的步骤。每个 Dockerfile 指令都对应于镜像构建过程中的一个步骤。下面是一些常用的 Dockerfile 指令及其解释:

1. FROM

指定基础镜像。

复制代码
FROM ubuntu:latest

2. RUN

运行命令,用于安装软件包、下载文件等。

复制代码
RUN apt-get update && apt-get install -y nginx

3. CMD

指定容器启动时运行的命令。

复制代码
CMD ["nginx", "-g", "daemon off;"]

4. EXPOSE

声明容器将监听的端口。

保留端口配置。

复制代码
EXPOSE 80

5. ENV

设置环境变量。

复制代码
ENV NODE_ENV=production

6. ADD

复制文件或目录到容器内,支持自动解压功能。

#步骤tomcat镜像,这个tomcat压缩包!添加内容

复制代码
ADD app.tar.gz /usr/src/app/

7. COPY

复制文件或目录到容器内,不支持自动解压。

类似ADD,将我们文件拷贝到镜像

复制代码
COPY app.tar.gz /usr/src/app/

8. WORKDIR

设置工作目录。

复制代码
WORKDIR /usr/src/app

9. VOLUME

创建一个数据挂载点。

复制代码
VOLUME /data

10. LABEL

为镜像添加元数据标签。

复制代码
LABEL maintainer="example@example.com"

11. ONBUILD

当镜像作为其他镜像的基础镜像时触发的指令。

当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。

复制代码
ONBUILD ADD . /app/src

12. USER

设置用户 ID 或用户名。

复制代码
USER nginx

13. HEALTHCHECK

定义健康检查命令。

复制代码
HEALTHCHECK --interval=30s --timeout=3s CMD curl --fail http://localhost/ || exit 1

14. ARG

定义构建参数。

复制代码
ARG version=1.0
FROM node:${version}-alpine

15. STOPSIGNAL

定义容器停止信号。

复制代码
STOPSIGNAL SIGINT

16.MAINTAINER

复制代码
镜像是谁写的,姓名+邮箱

示例 Dockerfile

下面是一个简单的 Dockerfile 示例,用于构建一个基于 Nginx 的 Web 服务器镜像:

复制代码
1# 使用官方 Nginx 镜像作为基础镜像
2FROM nginx:latest
3
4# 复制默认配置文件
5COPY ./nginx.conf /etc/nginx/nginx.conf
6
7# 复制静态文件到容器
8COPY ./public /usr/share/nginx/html
9
10# 暴露 HTTP 端口
11EXPOSE 80
12
13# 设置容器启动时运行的命令
14CMD ["nginx", "-g", "daemon off;"]

构建和运行 Docker 镜像

复制代码
docker build -t my-nginx-web .
复制代码
docker run -d -p 8080:80 my-nginx-web

这些是最常见的 Dockerfile 指令,你可以根据自己的需求组合使用它们来构建复杂的 Docker 镜像。

相关推荐
小袁搬码24 分钟前
Windows中指定路径安装DockerDesktop
windows·docker·容器·docker desktop
吃肉不能购36 分钟前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫40 分钟前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_312920111 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
踏雪Vernon1 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫1 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
黑牛先生1 小时前
【Linux】进程-PCB
linux·运维·服务器
Karoku0661 小时前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
条纹布鲁斯2 小时前
dockerdsktop修改安装路径/k8s部署wordpress和ubuntu
docker·kubernetes
安迁岚3 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql