对于开发人员来说,Docker肯定都不陌生,今天了不起带大家重新学习一下Docker。
什么是 Docker
官话:
Docker 是一种开源的容器化平台,它可以帮助开发者将应用程序与其所依赖的环境一起打包,形成一个独立的、可移植的容器。这些容器可以在任何支持 Docker 的平台上运行,无论是开发环境、测试环境,还是生产环境,都能保持一致的运行结果。Docker 的高度可移植性和轻量级特性使得软件开发和部署变得更加简单和高效。
简单理解:
Docker是一个容器,可以让我很方便的安装软件、部署项目,而不用为环境的不同发愁。
安装 Docker
在开始使用 Docker 之前,首先需要在您的计算机上安装 Docker。Docker 提供了适用于不同操作系统的安装程序,您可以根据自己的系统选择合适的安装方式。
强烈建议安装在linux环境下,操作简单、不容易出错;Windows环境下安装之后,Docker相关服务至少占用2G内存,建议32G内存的电脑考虑在Windows安装。
以Debian系统示例
卸载旧版本
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
安装Docker
设置存储库
- 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
- 添加 Docker 的官方 GPG 密钥:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
- 使用以下命令设置存储库:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker 引擎
- 更新包索引:apt
sudo apt-get update
- 安装 Docker Engine、containerd 和 Docker Compose。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 通过运行映像验证 Docker 引擎安装是否成功:hello-world
sudo docker run hello-world
您现在已成功安装并启动 Docker 引擎。
操作步骤详情请参照官方文档:https://docs.docker.com/engine/install/debian/
使用Docker
这里以安装nginx为例
1. 拉取镜像
在使用 Docker 前,通常需要先从 Docker Hub(Docker 的公共镜像仓库)或者其他私有镜像仓库中拉取所需的镜像。可以使用 docker pull 命令来拉取镜像,例如:
docker pull nginx:latest
上述命令会从 Docker Hub 拉取最新版的 Nginx 镜像。
2. 运行容器
拉取镜像后,就可以使用 docker run 命令来创建并运行容器,例如:
docker run -d -p 8080:80 nginx:latest
上述命令会以后台模式运行一个基于 Nginx 镜像的容器,并将容器的 80 端口映射到主机的 8080 端口。
3. 查看容器
使用 docker ps 命令可以查看当前正在运行的容器:
docker ps
使用 docker ps -a 命令可以查看包括已停止的容器在内的所有容器。
4. 停止和删除容器
使用 docker stop 命令停止一个运行中的容器,例如:
docker stop <CONTAINER_ID>
使用 docker rm 命令删除一个已停止的容器,例如:
docker rm <CONTAINER_ID>
5. 进入容器
有时候需要进入容器的 shell 环境进行调试或者执行命令。可以使用 docker exec 命令进入一个正在运行的容器,例如:
docker exec -it <CONTAINER_ID> /bin/bash
上述命令会在容器内启动一个交互式的 Bash shell。
文件挂载
在运行 Nginx 容器时,将 Nginx 的配置文件挂载到容器中,可以实现动态修改配置的功能。
- 首先,在您的主机上创建一个目录,并将 Nginx 配置文件放入该目录。例如,假设您有一个自定义的 Nginx 配置文件 nginx.conf,您可以将其放在 /path/to/nginx_config 目录下。
- 使用 Docker 运行 Nginx 容器时,通过添加 -v 或 --volume 参数来进行配置文件挂载:
docker run -d -p 8080:80 -v /path/to/nginx_config:/etc/nginx/nginx.conf:ro nginx:latest
上述命令会将主机中的 /path/to/nginx_config/nginx.conf 文件挂载到容器内的 /etc/nginx/nginx.conf 文件。这样,容器内的 Nginx 将使用您自定义的配置文件而不是默认的配置。
"ro" 表示将挂载的目录或文件设置为只读模式(Read-Only)。挂载为只读模式意味着容器内部对挂载的目录或文件只有读取权限,不能进行写入、修改或删除操作。
使用 "ro" 参数的好处是可以增加对容器内数据的安全性。如果您担心容器内的应用程序会无意间修改或删除重要的配置文件,可以使用 "ro" 参数确保这些配置文件不会被意外更改。
如果您希望容器内的应用程序具有对挂载目录的读写权限,可以省略 "ro" 参数或使用 "rw"(Read-Write)参数来挂载。
小结
Docker 是一个功能强大的容器化平台,可以帮助开发者简化应用程序的开发、测试和部署过程。
希望本篇文章能让你学会如何使用 Docker容器化技术,提高软件交付的效率和可靠性。