欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > docker基础操作

docker基础操作

2025/12/14 9:55:54 来源:https://blog.csdn.net/qq_63781342/article/details/148565055  浏览:    关键词:docker基础操作

目录

docker介绍

是什么

可以做什么

特点

轻量级与资源高效

标准化与可移植性        

环境一致性

快速部署与弹性伸缩

隔离性与安全性

生态丰富与安全性

使用环境说明

docker部署

镜像相关操作

私有仓库的使用

阿里云容器镜像服务--ACR

harbor私有仓库

推送镜像到私有仓库

容器相关操作

逻辑卷相关操作

网络相关操作

dockerfile介绍

dockerfile的使用

dockerfile构建自定义镜像


docker介绍

docker官网: Docker:加速容器应用程序开发

harbor官网:Harbor - Harbor 中文

使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像

是什么

Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环境、配置文件等)打包成一个独立的、可移植的容器(Container)。容器可以在任何支持 Docker 的环境中运行,而无需担心环境差异导致的问题。

可以做什么

Docker 的核心价值在于简化应用部署、提升环境一致性、加速开发流程,其应用场景广泛覆盖开发、测试、运维和云原生领域。

特点

轻量级与资源高效

共享内核,分层存储,资源占用低

标准化与可移植性        

镜像使用统一CRI标准,可以实现跨平台运行

环境一致性

镜像不可变,隔离性避免依赖冲突

快速部署与弹性伸缩

秒级启动,支持编排工具自动化管理

隔离性与安全性

使用基于Linux内核的Namespaces和Cgroups进行资源隔离和限制,用户命名空间提升安全性

生态丰富与安全性

支持镜像仓库,编排工具,监控日志等

使用环境说明

使用环境表
操作系统版本centos stream 9
docker版本28.2.2
harbor版本2.11.2

docker部署

#更改主机名
hostnamectl set-hostname docker
#关闭防火墙
systemctl disable --now firewalld
#关闭Selinux
setenforce 0 && sed -ri 's/enforcing/disabled/' /etc/selinux/config
#下载扩展源
dnf -y install epel-release
#更新所有安装包
dnf upgrade -y 
#清除安装包缓存
dnf makecache && dnf clean all
#下载docker
bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true --close-firewall false --ignore-backup-tips
#配置docker国内加速源
curl -s https://static.1ms.run/1ms-helper/scripts/install.sh | sudo bash /dev/stdin config:mirror
# 自动配置Docker镜像加速器,告别拉取超时(需要注册账号)
curl -s https://static.1ms.run/1ms-helper/scripts/install.sh | sudo bash /dev/stdin config
#docker-compose的安装与配置
sudo curl -L "https://1ms.run/install/docker-compose/latest/$(uname -s)/$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看docker相关信息
docker info

镜像相关操作

#直接使用docker pull拉取镜像 
docker nginx #(不指定nginx版本,则默认拉取latest版本镜像)
#拉取指定版本镜像
docker nginx:1.24 #(拉取1.24版本的nginx镜像)
#拉取指定仓库的镜像
docker pull https:library_url/library/nginx:tag

#删除指定镜像
docker rmi nginx:latest  #后面也可以跟image的id
#根据id进行删除
docker rmi e1dd0e2ae44f

#使用docker tag更改镜像相关信息,通常在将镜像推送到私有镜像仓库时需要使用
docker tag nginx:latest library_url/library/nginx:latest

#查看当前所有镜像
docker images 
docker image ls

私有仓库的使用

镜像仓库是容器化部署的核心基础设施,其核心价值体现在效率提升、安全可控、协作优化等方面。

阿里云容器镜像服务--ACR

在阿里云上使用自己的私有账号开通自己的私有仓库

使用比较方便

harbor私有仓库

使用harbor搭建自己的私有镜像仓库,便于使用

harbor压缩包获取链接: ​​​​​

https://github.com/goharbor/harbor/releases/download/v2.9.3/harbor-offline-installer-v2.9.3.tgz

# 下载 Harbor v2.11.2
wget https://github.com/goharbor/harbor/releases/download/v2.11.2/harbor-offline-installer-v2.11.2.tgz
# 解压安装包
tar -xzf harbor-offline-installer-v2.11.2.tgz
#查看解压镜像
docker images
#进入解压目录
cd harbor
#拉取所需镜像
docker load -i  harbor.v2.11.2.tar.gz
#生成公钥和私钥
openssl req -x509 -nodes -newkey rsa:4096 -keyout /etc/ssl/harbor.key -out /etc/ssl/harbor.crt -days 365 -subj "/CN=reg.yourdomain.com"
#修改配置文件
grep -vE "^(#|$)" harbor.yml | grep -v "#"
hostname: www.troubles.top
http:port: 80
https:port: 443certificate: /root/www.troubles.top.pemprivate_key: /root/www.troubles.top.key
harbor_admin_password: 12345
database:password: root123max_idle_conns: 100max_open_conns: 900conn_max_lifetime: 5mconn_max_idle_time: 0
data_volume: /data/harbor
trivy:ignore_unfixed: falseskip_update: falseskip_java_db_update: falseoffline_scan: falsesecurity_check: vulninsecure: falsetimeout: 5m0s
jobservice:max_job_workers: 10job_loggers:- STD_OUTPUT- FILE
notification:webhook_job_max_retry: 3
log:level: infolocal:rotate_count: 50rotate_size: 200Mlocation: /var/log/harbor
_version: 2.11.0
proxy:http_proxy:https_proxy:no_proxy:components:- core- jobservice- trivy
upload_purging:enabled: trueage: 168hinterval: 24hdryrun: false
cache:enabled: falseexpire_hours: 24
#创建日志和数据使用目录并添加权限
mkdir /var/log/harbor -p
mkdir /data/harbor
添加权限
chmod 777 -R /data/  /var/log/harbor/
#检查配置
./prepare
#启动安装脚本
./install.sh
#查看启动的容器
docker ps 
#使用本地80端口访问harbor

后续进行私有镜像仓库的创建即可

推送镜像到私有仓库

#现在共有镜像仓库中进行镜像拉取
docker pull nginx:1.22
#将镜像进行改名
docker tag nginx:1.22
#登录私有镜像仓库
docker login 
#推送镜像到私有仓库
docker push 
#退出登录
docker logout

容器相关操作

#运行容器
docker run -tid --name msyql -p 3306:3306 -v test:/var/lib/mysql -e MYSQL_ROOT_PASSWORD mysql:latest 
#停止容器
docker stop mysql
#重启容器
docker restart myslq
#查看运行中的容器
docker ps 
#查看所有容器
docker ps -aq

逻辑卷相关操作

#创建逻辑卷
docker volume create data
#查看逻辑卷
docker volume ls
#查看逻辑卷详细信息
docker volume inspect data
#挂载逻辑卷到容器实现数据持久化
docker run -tid --name mysql -e MYSQL_ROOT_PASSWORD -p 3306:3306 -v data:/var/lib/mysql
mysql:latest

网络相关操作

#创建网络
docker network create test
#查看逻辑卷
docker network ls
#查看逻辑卷详细信息
docker network inspect test
#挂载逻辑卷到容器实现数据持久化
docker run -tid --name mysql -e MYSQL_ROOT_PASSWORD -p 3306:3306 -v data:/var/lib/mysql --network=test
mysql:latest

dockerfile介绍

Dockerfile 是一个文本文件,其中包含了一系列指令,用于自动化构建 Docker 镜像。通过 Dockerfile,您可以定义镜像的构建步骤、基础镜像、环境变量、依赖项、文件复制、暴露端口、启动命令等。Docker 使用 Dockerfile 中的指令来逐步构建镜像,最终生成一个可运行的容器。

dockerfile的使用

自动化构建
通过定义一系列指令,Dockerfile 可以自动化镜像的构建过程,避免手动操作的繁琐和错误。

可重复性
相同的 Dockerfile 可以多次构建出完全一致的镜像,确保环境的一致性。

版本控制
Dockerfile 可以像代码一样进行版本控制,便于追踪和管理镜像的变更。

协作与共享
团队成员可以通过 Dockerfile 快速构建相同的环境,便于协作开发。

dockerfile构建自定义镜像

简单示例: 使用dockerfile自定义构建welcome镜像

#获取基础镜像
docker pull buxybox:latest
#创建项目目录
mkdir welocme && cd welcome 
#书写Dockerfile
cat  << EOF >>  Dockerfile
FROM busybox:latest 
CMD ["echo","hello docker"] 
EOF
#构建自定义镜像
docker build -t welcome:v1 .
#查看构建完毕的镜像
docker images | grep "welcome"
#基于创建的镜像运行容器
docker run welcome:v1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com