admin管理员组文章数量:1794759
零基础Docker入门指南
1 前言
Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。这些容器可以在任何支持 Docker 的 Linux 机器上运行,无需担心环境差异带来的问题。Docker 的设计理念是“一次构建,到处运行”,这意味着一旦应用在 Docker 容器中构建完成,它就可以在任何安装了 Docker 的机器上无缝运行。
特点
- 轻量级:不需要模拟硬件,它共享宿主机的内核,因此比虚拟机更轻量。
- 可移植性:可以在不同的环境中运行,无论是本地开发环境、测试环境还是生产环境。
- 快速部署:可以快速启动和停止,这使得部署和扩展应用变得非常迅速。
- 安全性:提供了良好的隔离,每个容器都是独立的,不会互相干扰。
2 快速安装
Docker 在不同系统的安装方式略有不同但基本相似,以下就用几个常用系统作为演示。
2.1 Ubuntu
使用 Ubuntu 22.04 LTS,理论上各版本可通用
更新系统软件包索引,如果较慢可以更换镜像源
代码语言:bash复制sudo apt update
安装必要的依赖包
代码语言:bash复制sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加阿里云 GPG 密钥
代码语言:bash复制curl -fsSL | sudo apt-key add -
添加阿里云 APT 软件源,在国内不推荐使用官方源,如需使用官方源请添加官方 GPG 密钥
代码语言:bash复制sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"
# 过程需要使用一次回车键
更新软件包索引并安装 Docker Engine
代码语言:bash复制sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
启动Docker服务
代码语言:bash复制sudo systemctl start docker
验证安装是否成功
代码语言:bash复制docker --version
# 出现版本号即为安装成功
# Docker version 26.1.3, build b72abbb
2.2 Debian
使用 Debian 12.5,理论上各版本可通用
更新系统软件包索引,如果较慢可以更换镜像源
代码语言:bash复制sudo apt-get update
安装必要的依赖包
代码语言:bash复制sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
添加阿里云 GPG 密钥
代码语言:bash复制curl -fsSL | sudo apt-key add -
添加阿里云 APT 软件源,在国内不推荐使用官方源,如需使用官方源请添加官方 GPG 密钥
代码语言:bash复制echo "deb [arch=amd64] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 过程需要使用一次回车键
更新软件包索引并安装 Docker Engine
代码语言:bash复制sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
启动Docker服务
代码语言:bash复制sudo systemctl start docker
验证安装是否成功
代码语言:bash复制docker --version
# 出现版本号即为安装成功
# Docker version 26.1.3, build b72abbb
2.3 CentOS
使用 CentOS Stream 9,理论上 CentOS 7.x 也可以使用
更新系统软件包索引,如果较慢可以更换镜像源
代码语言:bash复制sudo yum update -y
安装必要的依赖包
代码语言:bash复制sudo yum install -y yum-utils device-mapper-persistent-data lvm2
从国内服务器上下载存储库,在国内不推荐使用官方库
代码语言:bash复制sudo yum-config-manager --add-repo .repo
安装 Docker Engine
代码语言:bash复制sudo yum install -y docker-ce docker-ce-cli containerd.io
启动Docker服务
代码语言:bash复制sudo systemctl start docker
验证安装是否成功
代码语言:bash复制docker --version
# 出现版本号即为安装成功
# Docker version 26.1.3, build b72abbb
3 常用命令
镜像管理命令
docker pull
:从Docker Hub或其他仓库拉取镜像docker images
:列出本地所有镜像docker rmi
:删除指定的镜像docker build
:从 Dockerfile 构建新的镜像docker commit
:将容器保存为新的镜像docker tag
:给镜像打标签docker push
:将镜像推送到仓库docker search
:在 Docker Hub 上搜索镜像
容器管理命令
docker run
:创建并运行一个新的容器docker start
:启动一个已停止的容器docker stop
:停止一个正在运行的容器docker restart
:重启一个容器docker pause
:暂停一个或多个容器的所有进程docker unpause
:恢复一个或多个容器的所有进程docker kill
:强制停止一个或多个容器docker rm
:删除一个或多个容器docker ps
:列出当前运行的容器docker ps -a
:列出所有容器,包括已停止的docker inspect
:查看容器的详细信息docker exec
:在容器内运行命令docker logs
:获取容器的日志docker cp
:在容器与宿主机间复制文件
网络管理命令
docker network ls
:列出所有网络docker network create
:创建新网络docker network connect
:连接容器到网络docker network disconnect
:从网络断开容器docker network rm
:删除网络。
卷管理命令
docker volume ls
:列出所有卷docker volume create
:创建新卷docker volume inspect
:查看卷的详细信息docker volume rm
:删除卷
系统信息命令
docker version
:显示 Docker 版本信息docker info
:显示 Docker 系统信息
4 使用示例
4.1 Nginx
拉取 Nginx 镜像
代码语言:bash复制docker pull nginx
运行 Nginx 容器
代码语言:bash复制docker run --name nginx-test -p 8080:80 -d nginx
--name nginx-test
:设置容器名称-p 8080:80
: 映射容器服务的 80 端口到宿主机的 8080 端口-d nginx
: 设置容器在在后台一直运行
若在浏览器成功访问 IP:8080
即为安装成功,注意需要放行对应端口
3.2 MySQL
拉取 MySQL 镜像
代码语言:bash复制docker pull mysql
运行 MySQL 容器
代码语言:bash复制docker run -it --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-it
:启动一个交互式 shell-p 3306:3306
:映射容器服务的 3306 端口到宿主机的 3306 端口-e MYSQL_ROOT_PASSWORD=123456
:设置 MySQL 服务 root 用户的密码-d mysql
: 设置容器在在后台一直运行
使用 Navicat Premium
工具测试是否安装成功,注意需要放行对应端口
5 Docker Compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose 可以使用 YML 文件来配置应用程序需要的所有服务,然后使用一个命令就可以从 YML 文件配置中创建并启动所有服务。
5.1 安装
下载 Docker Compose 二进制文件
代码语言:bash复制sudo curl -L ".27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予 Docker Compose 执行权限
代码语言:bash复制sudo chmod +x /usr/local/bin/docker-compose
验证安装是否成功
代码语言:bash复制docker-compose --version
# 出现版本号即为安装成功
# Docker Compose version v2.27.1
5.2 使用示例
创建并进入一个测试目录
代码语言:bash复制mkdir composetest & cd composetest
创建并编辑 docker-compose.yml 文件
代码语言:bash复制vim docker-compose.yml
代码语言:yml复制# docker-compose.yml
services: # 在这个配置文件中,定义了两个服务 nc(Nextcloud) 和 db(PostgreSQL)
nc: # Nextcloud
image: nextcloud:apache # 指定容器使用的镜像为 nextcloud:apache
environment: # 设置环境变量,包括数据库的连接信息
- POSTGRES_HOST=db # 指定数据库服务的名称
- POSTGRES_PASSWORD=nextcloud # 数据库密码
- POSTGRES_DB=nextcloud # 数据库名
- POSTGRES_USER=nextcloud # 数据库用户名
ports: # 映射容器服务的 80 端口到宿主机的 80 端口
- 80:80
restart: always # 指定容器总是重启
volumes: # 挂载卷 nc_data 到容器内 /var/www/html 目录,用于持久化 Nextcloud 的数据
- nc_data:/var/www/html
db: # PostgreSQL
image: postgres:alpine # 指定容器使用的镜像为 postgres:alpine
environment: # 设置环境变量,包括数据库的配置信息
- POSTGRES_PASSWORD=nextcloud # 数据库密码
- POSTGRES_DB=nextcloud # 数据库名
- POSTGRES_USER=nextcloud # 数据库用户名
restart: always # 指定容器总是重启
volumes: # 挂载卷 db_data 到容器内 /var/lib/postgresql/data 目录,用于持久化数据库的数据
- db_data:/var/lib/postgresql/data
expose: # 暴露容器的5432端口
- 5432
volumes: # 卷
db_data: # 定义了一个名为 db_data 的卷,用于存储数据库的数据
nc_data: # 定义了一个名为 nc_data 的卷,用于存储 Nextcloud 的数据
构建应用并在后台执行该服务
代码语言:bash复制docker-compose up -d
等待构建完成后,在浏览器访问 IP:80
成功出现下图即为成功,注意需要放行对应端口
6 写在最后
Docker 是一个强大的工具,它简化了应用的部署和管理过程。无论是开发者还是系统管理员,学习 Docker 都将大大提升工作效率。本文侧重于如何安装 Docker,如需深入学习推荐使用官方文档:/。
本文标签: 零基础Docker入门指南
版权声明:本文标题:零基础Docker入门指南 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754722050a1705638.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论