RockyLinux 9.5 部署 Docker

Docker 有两个版本,Docker Community Edition (CE):社区版,免费,适合开发人员和小型团队使用;Docker Enterprise Edition (EE):企业版,收费,适合用于企业级生产环境。

Rocky Linux 9.5 镜像地址

一、Docker 安装

1、添加阿里云 docker 社区版仓库
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装 docker 社区版
# 安装最新版
dnf install -y docker-ce
或者
# 安装指定版本
# 列出当前系统中所有可安装的 docker-ce 版本,并按照版本号从高到低进行排序,同时显示重复的版本。
dnf list docker-ce --showduplicates | sort -r
# 安装指定版本 docker-ce
dnf install -y docker-ce-3:28.1.1-1.el9
3、启动 docker 并设置开机自启
systemctl enable docker --now

注:

# --now 选项:表示在启用开机启动的同时立即启动该服务,相当于同时执行了 enable 和 start
systemctl enable docker --now 
# 设置 docker 开机自启
systemctl enable docker
# 启动 docker
systemctl start docker
# 查看 docker 状态
systemctl status docker

二、配置 Docker 镜像加速

国内由于网络环境的特殊性,访问 Docker Hub 可能会遇到速度慢或者连接不稳定的问题。为了提高 Docker 镜像的下载速度,可以使用镜像加速服务。截至到目前,阿里云镜像加速仅支持具备公网访问能力的阿里云产品,腾讯云镜像加速只支持内网访问,本地部署笔者目前使用的相对稳定和可信的有两个:
1、DaoCloud 提供的公共 Docker 镜像加速服务,地址为 https://docker.m.daocloud.io
2、华为云镜像加速器:需要登陆获取地址,方法可以参考:https://support.huaweicloud.com/usermanual-swr/swr_01_0045.html

1、创建目录,存放 docker 的配置文件
mkdir -p /etc/docker
2、创建 daemon.json,添加镜像加速服务地址
# 注:使用 cat 如果 daemon.json 不存在会创建文件,但是如果文件存在,会覆盖里面的内容
# 如果只是想在 daemon.json 里面追加内容,可以自行编辑文件。
# daemon.json 用的比较多的配置参数有下面三个:
# ① registry-mirrors: 数组,指定 Docker Hub 的镜像加速器地址,以加快镜像下载速度
# ② insecure-registries: 数组,列出不安全的私有仓库地址。默认情况下,Docker 只允许连接使用 HTTPS 的仓库,如果需要连接到一个使用 HTTP 的仓库,则需在此处添加该仓库地址。
# ③ exec-opts: 数组,指定运行时的选项。例如,使用 native.cgroupdriver=systemd 来改变 cgroups 驱动为 systemd。
cat > /etc/docker/daemon.json <
3、更新 docker 服务配置并重启服务
systemctl daemon-reload
systemctl restart docker
4、测试是否可以正常拉取 nginx 镜像
docker pull nginx
5、测试部署 nginx
# 上一步拉取 nginx 成功后执行
# 下面命令执行成功后浏览器访问 http://ip:80
docker run -d -p 80:80 --name nginx nginx

三、Docker 常用命令

1、镜像相关命令
# 拉取镜像,以 nginx 为例,不添加标签默认拉取最新版本
# docker pull [镜像名:标签]                  
docker pull nginx:latest

# 查看所有本地镜像
docker images
# 查看所有本地镜像,只显示镜像ID
docker images -q

# 构建镜像
docker build -t [镜像名:标签] .          # 在当前目录构建镜像
docker build -f Dockerfile.prod .       # 指定Dockerfile构建

# 登录 Docker 镜像仓库(如 Docker Hub、私有仓库等)
docker login [服务器地址]
# 登出指定服务器
docker logout [服务器地址]
# 标记镜像(用于推送到仓库)
# docker tag [源镜像] [目标仓库/镜像:标签] 
docker tag nginx:latest http://localhost:5000/nginx/nginx:1.0
# 推送镜像到仓库
# docker push [仓库/镜像:标签] 
docker push http://localhost:5000/nginx/nginx:1.0 

# 删除指定镜像
# docker rmi [镜像ID或名称]
docker rmi nginx:latest
# 删除所有本地镜像(危险操作)
docker rmi $(docker images -q)
2、容器操作
# 创建并启动容器
# -d 或 --detach: 在后台运行容器,不使用这个选项,命令将会在前台运行
# -p:实现主机端口与容器端口的映射,格式为 主机端口:容器端口
# --name: 为容器指定一个名称。如果没有指定,Docker将自动生成一个唯一的名称。
# -v:将主机目录或者文件挂载到容器中,格式是 主机路径:容器路径
# -e:用于设置容器内的环境变量,它允许你向容器中传递环境变量,这些环境变量可以在容器内的应用程序中使用。
# -m 或 --memory:限制容器可用的最大内存,例如 --memory=512m
# --cpus:限制容器可以使用的最大 CPU 数,例如 --cpus=0.5 表示容器最多能使用 0.5 个 CPU 核心
# --restart: 定义容器退出后的重启策略。例如,no, on-failure, always, unless-stopped
# docker run -d -p : --name  
docker run -d -p 80:80 --name nginx nginx

# 列出正在运行的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 列出所有容器,只显示容器ID
docker ps -aq

# 启动/停止/重启容器
docker start [容器ID或名称]              # 启动已停止的容器
docker stop [容器ID或名称]               # 优雅停止容器
docker restart [容器ID或名称]            # 重启容器
docker kill [容器ID或名称]               # 强制终止容器

# 进入容器
docker exec -it [容器ID或名称] bash      # 进入运行中的容器
docker attach [容器ID或名称]             # 附加到容器的主进程
# 主要用于查看 Nginx 容器的实时日志输出
docker attach nginx

# 删除容器, 添加 --force 参数强制删除
docker rm [容器ID或名称]                 # 删除已停止的容器
docker rm -f $(docker ps -aq)           # 强制删除所有容器(危险操作)

# 查看容器日志
docker logs [容器ID或名称]               # 查看容器日志
docker logs -f [容器ID或名称]            # 实时跟踪日志输出
3、容器资源与状态
# 查看容器资源使用情况
docker stats [容器ID或名称]              # 实时监控CPU/内存/网络等
docker top [容器ID或名称]                # 查看容器内运行的进程

# 获取容器详细信息
docker inspect [容器ID或名称]            # 获取容器详细配置信息
docker port [容器ID或名称]               # 查看端口映射情况
4、其它常用命令
# 保存/加载镜像
docker save -o myimage.tar nginx        # 将镜像保存为tar文件
docker load -i myimage.tar              # 从tar文件加载镜像

# 清理 Docker
# 默认情况下会删除以下内容
# 1、所有已经停止的容器。
# 2、未被使用的网络(即没有被任何容器使用的网络)。
# 3、悬空的镜像(dangling images),即没有标签且未被任何容器引用的镜像。
# 4、未使用的构建缓存
# 建议定期运行 docker system prune 来保持系统的清洁,特别是当你频繁地构建和测试镜像时,这样可以避免不必要的磁盘空间占用。
docker system prune
# 查看Docker磁盘使用情况
docker system df                       

你可能感兴趣的:(docker,容器,运维,linux)