Docker 镜像、容器、仓库的概念及应用详解
Docker 镜像
Docker 镜像是一个可执行的软件包,包含运行特定应用程序所需的所有内容,包括代码、运行时环境、系统工具、库和依赖项。Docker 镜像使用栈式文件系统,将每个新图层添加到现有的图层顶部,从而创建一个完整的文件系统。Docker 镜像是可共享和重复使用的,开发者可以将其分享给他人或在多种应用程序部署中重复使用。
Docker 镜像的示例
首先需要提前安装 Docker,并获取镜像。
- 在终端输入以下命令从 Docker Hub 获取 Ubuntu 镜像:
docker pull ubuntu
- 运行以下命令来列出所有可用镜像:
docker images
- 然后,使用以下命令运行新的容器并登录到 Ubuntu 镜像中的 shell:
docker run -ti ubuntu /bin/bash
- 您现在已经登录到 Ubuntu 容器中,可以在其中执行任何命令。例如,运行以下命令来查看当前目录:
ls
你会发现当前目录是空的。
- 现在,在 Ubuntu 内部创建一个新目录并退出容器:
mkdir test
exit
- 查看主机上的当前目录:
ls
您现在应该会发现一个新的 test 目录已被创建。
Docker 容器
Docker 容器是 Docker 镜像的运行实例。容器是一个封装的、独立的运行环境,其中包含应用程序、运行时环境、系统工具、库和依赖项。容器可以在任何地方运行,无需再次安装或配置应用程序或环境。容器可用于测试新应用程序、快速创建开发环境、运行专用服务和一次性任务。使用容器,可确保应用程序在任何地方以相同的方式运行。
Docker 容器的示例
- 运行以下命令以在后台模式下启动新 Docker 容器:
docker run -d --name webserver -p 80:80 nginx
在这个示例中,我们使用 nginx 镜像创建一个名为 webserver 的新容器,并将容器的 80 端口映射到主机的 80 端口。容器将在后台模式下运行,这意味着不会收到所有输出。
-
然后,在 Web 浏览器中输入主机的 IP 地址或 localhost,您应该会看到“Welcome to nginx!” 页面,表示 Nginx 已经在容器中成功运行。
-
使用以下命令列出所有正在运行的容器:
docker ps
- 运行以下命令以停止名为 webserver 的容器:
docker stop webserver
使用以下命令列出所有停止的容器:
docker ps -a
- 运行以下命令以删除名为 webserver 的容器:
docker rm webserver
Docker 仓库
Docker 仓库是一个集中的存储库,其中包含 Docker 镜像。Docker 仓库使开发者能够共享和重复使用 Docker 镜像,提高了团队的协作水平。Docker Hub 是 Docker 公共仓库,其中包含了大量的公共镜像,可以在任何时候进行访问。
Docker 仓库的示例
- 在 Docker Hub 网站上创建帐户,然后登录:
https://hub.docker.com
- 运行以下命令以从 Docker Hub 获取 MySQL 镜像:
docker pull mysql
- 运行以下命令以启动新 MySQL 容器:
docker run --name mysql-db -e MYSQL_ROOT_PASSWORD=password -d mysql
在这个示例中,我们创建了一个名为 mysql-db 的新容器,并将 MySQL 容器的 root 密码设置为 password。MySQL 镜像启动后会在后台运行,并生成一个 ID。
- 运行以下命令以查看已启动的 MySQL 容器:
docker ps
此命令将显示 mysql-db 容器的 ID、状态、创建时间、运行时间和所使用的端口。
- 使用以下命令登录 MySQL:
docker exec -it mysql-db mysql -u root -ppassword
- 输入以下命令以退出 MySQL:
quit
- 使用以下命令停止容器:
docker stop mysql-db
- 使用以下命令删除容器:
docker rm mysql-db
以上是 Docker 镜像、容器、仓库的概念及应用的详细说明,同时提供了两个示例来帮助您更好地理解它们的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker 镜像、容器、仓库的概念及应用详解 - Python技术站