Docker入门指南
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker容器的部署(一)
下面是一个简单的 Docker 容器部署指南:
1. 安装 Docker
在大多数操作系统中,你可以通过以下命令安装 Docker:
# 对于Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker.io
# 对于CentOS
sudo yum install docker
# 启动 Docker
sudo systemctl start docker
# 设置 Docker 开机自启
sudo systemctl enable docker
2. Docker 镜像
Docker 镜像是容器运行的基础。你可以从 Docker Hub(一个容器镜像仓库)下载预构建的镜像,也可以自己构建。
# 下载一个 Ubuntu 镜像
sudo docker pull ubuntu
# 查看本地所有镜像
sudo docker images
3. 运行容器
使用 docker run
命令来启动一个容器。
# 运行一个 Ubuntu 容器,并进入交互模式
sudo docker run -it ubuntu /bin/bash
这里的 -it
参数是让容器运行在交互模式,ubuntu
是镜像名,/bin/bash
是在容器内执行的命令。
4. 容器管理
你可以使用多种命令来管理你的容器。
# 列出所有正在运行的容器
sudo docker ps
# 列出所有容器(包括停止的)
sudo docker ps -a
# 停止一个正在运行的容器
sudo docker stop [容器ID或名字]
# 删除一个容器
sudo docker rm [容器ID或名字]
5. 部署应用
假设你有一个 web 应用,你可以创建一个 Dockerfile 来构建应用的 Docker 镜像。
# 使用官方 Python 运行时作为父镜像
FROM python:3.7-slim
# 将工作目录设置为 /app
WORKDIR /app
# 将当前目录内容复制到位于 /app 的容器中
COPY . /app
# 安装 requirements.txt 中指定的任何所需包
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# 使端口 80 可供此容器外的环境使用
EXPOSE 80
# 定义环境变量
ENV NAME World
# 在容器启动时运行 app.py
CMD ["python", "app.py"]
然后你可以构建并运行这个镜像:
# 构建镜像
sudo docker build -t my-python-app .
# 运行镜像
sudo docker run -p 4000:80 my-python-app
这样,你的应用就在 Docker 容器中运行了,并且可以通过主机的 4000 端口访问。
Docker镜像的使用(二)
Docker 镜像是一个轻量级、独立的可执行软件包,它包含了运行应用程序所需的所有代码、运行库、环境变量和配置文件。在 Docker 的世界里,镜像就像是容器的基础模板,容器是从镜像创建的运行实例。
下面是关于 Docker 镜像使用的一些基本指南:
1. 查找和拉取镜像
Docker 镜像通常存储在 Docker Hub(一个公共的镜像仓库)中。你可以使用 docker search
命令来查找你需要的镜像。
# 搜索 Ubuntu 镜像
docker search ubuntu
使用 docker pull
命令来下载你想要的镜像。
# 下载 Ubuntu 官方镜像
docker pull ubuntu
2. 查看本地镜像
使用 docker images
命令来查看你本地已经下载的镜像。
docker images
3. 运行镜像
使用 docker run
命令来从镜像创建一个容器并运行。
# 运行一个 Ubuntu 容器,并执行 echo 命令
docker run ubuntu echo 'Hello, Docker!'
4. 创建自己的镜像
你可以通过两种方式创建自己的 Docker 镜像:使用 docker commit
命令从运行中的容器创建,或者使用 Dockerfile
。
使用 docker commit
:
# 先运行一个容器
docker run -it ubuntu /bin/bash
# 在容器中进行一些修改,比如安装软件
# ...
# 提交更改到新的镜像
docker commit [容器ID] my-ubuntu
使用 Dockerfile
:
创建一个 Dockerfile
文件,然后使用 docker build
命令构建镜像。
# 使用官方 Python 运行时作为父镜像
FROM python:3.7-slim
# 安装 Redis 库
RUN pip install redis
# 将当前目录内容复制到位于 /app 的容器中
COPY . /app
# 暴露端口
EXPOSE 80
# 运行 app.py
CMD ["python", "app.py"]
# 构建镜像
docker build -t my-python-app .
5. 镜像标签
你可以给镜像打上标签以便于管理。
# 给镜像打上标签
docker tag my-python-app my-python-app:1.0
6. 推送镜像到 Docker Hub
如果你想分享你的镜像,可以将它推送到 Docker Hub。
# 登录到 Docker Hub
docker login
# 将镜像推送到 Docker Hub
docker push my-python-app
7. 删除镜像
使用 docker rmi
命令来删除不再需要的镜像。
# 删除名为 my-python-app 的镜像
docker rmi my-python-app
8. 镜像历史
你可以查看镜像的构建历史。
docker history my-python-app
这些是 Docker 镜像使用的一些基本操作。熟练掌握这些命令和技巧,可以帮助你有效地管理和使用 Docker 镜像。