常用命令
大约 4 分钟devOpsdocker
赋予普通用户执行docker的权限
只要将用户添加到 docker 的用户组就可以了 
docker的组成

启动与停止服务

仓库、镜像相关
- 搜索仓库 docker search tomcat 后面的 tomcat 是想要搜索的应用的名称
- 拉取镜像/下载镜像 docker pull tomcat 像上面的命令在应用名称后面没有跟随 TAG 则表示下载最新版本
- 拉取 CentOS 拉取最新版本的 CentOS:docker pull centos 拉取指定版本的:docker pull centos:7
- 查看本地仓库 docker image ls
- 镜像常用操作 删除本地所有镜像
docker rmidocker images -q``
- 注册镜像文件,如果有镜像文件,可以上传到
linux系统后注册到docker中。切换到nacos.tar所在目录执行下面命令
docker load -i nacos.tar
之后就可以通过 docker ls 查看本机的镜像
容器相关
交互式容器

守护式容器

最简单的启动容器:
- 最简单的启动方法:docker start 容器名称 (这种方法是通过复杂的启动容器命令已经成功创建了该容器,才能这样通过已经存在的容器名称启动)
- 查看日志
# 查看最近30分钟的日志(指定容器)
sudo docker logs --since 30m [容器ID或者容器名称]
运行镜像 - 启动容器,前面的8080是宿主机的端口号(即云服务器的端口号),后面的8080是容器内的端口号,一般就使用应用官方默认的端口号(比如 tomcat 官方使用8080,mysql官方使用3306)
运行容器命令的参数介绍: 
查看当前运行中的容器:docker ps 查看本机所有容器(不管是否在运行都会显示):docker ps -a

停止容器:docker stop 容器名称
查看容器日志

进入容器 docker exec -it 容器ID(或者容器名称) /bin/bash
退出容器 ctrl+d
重启容器 docker restart 容器ID
删除容器:docker rm 容器名称(记得先停止容器的运行)
宿主机与docker容器间拷贝文件

目录挂载

运行容器时挂载目录案例演示
挂载时候如果是多级目录可能有权限问题 
查看容器IP

从宿主机拷贝文件到容器中

从容器拷贝文件到宿主机

挂载目录
如果挂载目录出现没有权限的提示,通过 --privileged=true 来解决
下面是 2025年7月26日 在 ubuntu24 上以 docker 方式安装的 lucky 容器内创建目录并挂载到宿主机的步骤
# 执行下面命令会提示:
# OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
# 说明 lucky 的镜像使用的是精简版 Linux,例如 Alpine
sudo docker exec -it lucky /bin/bash
# 应该更换为:
sudo docker exec -it lucky /bin/sh
# 创建目录并设置权限
mkdir -p /data/webdav
cd ..
chmod 777 webdav -R
exit
日志
Docker 容器的日志默认存储在宿主机的 /var/lib/docker/containers/[容器ID]/[容器ID]-json.log 文件中
# 获取 Seata 容器的 ID
docker inspect --format='{{.Id}}' seata
# 获得容器ID后,其日志文件是 /var/lib/docker/containers/[容器ID]/[容器ID]-json.log
# 使用 truncate 清空文件(保留文件,内容归零)
sudo truncate -s 0 /var/lib/docker/containers/[容器ID]/[容器ID]-json.log
# 或者直接删除日志文件(Docker 会自动重建)
sudo rm /var/lib/docker/containers/[容器ID]/[容器ID]-json.log
# 查看实时日志
docker logs 容器ID或容器名
# 查看并实时跟踪日志
docker logs -f 容器ID或容器名
# 查看最近100行日志内容
docker logs --tail 100 容器ID或容器名 # 查看最后100行
# 查看指定时间段日志
docker logs --since 2024-01-01T00:00:00 容器ID或容器名
docker logs --since 1h 容器ID或容器名 # 最近1小时的日志
# 查看最后50行并实时跟踪,显示时间戳
docker logs --tail 50 -f -t 容器ID或容器名
