Docker介绍
Docker 是一个开源的平台,它利用了Linux内核的特性(如命名空间和控制组)来创建一种称为容器的技术。容器是一种轻量级、可移植的软件包,它包含了运行应用程序所需的一切:代码、运行时环境、系统工具、库以及设置。这使得应用程序可以在几乎任何环境中一致地运行,无论是开发人员的笔记本电脑、物理服务器、虚拟机还是云环境中。
docker概念
容器
容器是 Docker 的核心组成部分。它们是独立的、可移植的软件包,里面包含了应用程序及其所有依赖项。容器在隔离的环境中运行,但是比传统的虚拟机更轻量,启动速度更快。
镜像 (Images)
镜像是用来创建容器的只读模板。镜像通常基于一个基础镜像,并且可以包含软件、配置文件和其他必要的资源。镜像可以被分发和共享,开发者可以从公共或私有的仓库中拉取镜像来使用。
仓库 (Repositories)
Docker Hub 和其他类似的仓库服务允许用户上传和下载镜像。这些仓库可以是公开的,也可以是私有的,为团队提供了一个协作和分享镜像的方式。
Dockerfile
Dockerfile 是一个文本文件,其中包含了用于构建镜像的一系列指令。通过这个文件,你可以定义应用程序的运行环境,包括安装哪些软件包、复制哪些文件、暴露哪些端口等。
Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件,你可以配置应用程序的服务,然后使用一个命令即可启动所有的服务。
网络 (Networking)
Docker 提供了多种网络模式来让容器之间或者容器与外部世界通信。例如,bridge
网络可以让同一主机上的容器相互通信,而 host
模式则使容器使用主机的网络栈。
卷 (Volumes)
卷是用来持久化数据的一种机制。即使容器被删除,存储在卷中的数据仍然会保留。这对于数据库或者其他需要保存状态的应用程序特别有用。
安装dokcer
建议root用户安装,否则每条命令前面都要加上sudo
- 在安装之前,需要卸载冲突的软件包,使用以下命令卸载
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- 设置 Docker 的 apt 存储库
海外环境或者能够访问docker的机器
# 允许 apt 通过 HTTPS 使用仓库 apt install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common # 添加稳定版仓库密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 设置 Docker 稳定版仓库 add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
国内环境,不能访问docker的机器要用国内镜像源
# 添加仓库密钥 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - # 添加apt仓库源 add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 安装docker
# 更新软件源 apt update # 安装 ps:如果只使用docker拉取镜像功能可以只安装docker-ce docker-ce-cli containerd.io即可,以下为完整功能包 apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
- 启动
# 启动 systemctl start docker.service # 设置为开机自启 systemctl enable docker.service # 停止 systemctl stop docker.service # 关闭开机自启 systemctl disable docker.service
运行nginx容器
配置加速器
国内环境无法直接访问docker官方仓库,因此需要配置加速器,截止24年12月4日,收集到的网络上的docker加速器如下:
1、https://docker.1panel.live
或者使用私人加速(后续会介绍阿里云和腾讯云个人镜像加速服务)
编辑或创建 /etc/docker/daemon.json
文件
vim /etc/docker/daemon.json
# 粘贴以下内容
{
"registry-mirrors": ["https://docker.1panel.live"]
}
重启docker
systemctl restart docker
拉取nginx镜像
# 如果不加版本号默认拉取最新的
docker pull nginx:1.26.1
启动容器
docker run --name nginx-server1 -d -p 80:80 nginx:1.26.1
#参数解释
# --name nginx-server1:给容器命名为 "nginx-server1"。
# -d:以后台模式运行容器。
# -p 80:80:将主机的端口 80 映射到容器的端口 80。当访问服务器 IP 地址时,请求会被转发到运行在容器中的 Nginx 服务。
浏览器访问虚拟机ip测试
如果要进入容器修改nginx首页或者配置,可以使用以下命令
# 进入容器终端 使用bash命令
docker exec -it nginx-server1 /bin/bash
# 修改配置
vi /etc/nginx/conf.d/default.conf
# 修改首页
vi /usr/share/nginx/html/index.html
# 退出容器终端
exit