Docker部署教程:新手入门详解
2024/12/19 21:03:04
本文主要是介绍Docker部署教程:新手入门详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文提供了详细的Docker部署教程,适合新手入门学习。内容涵盖Docker的安装、环境配置、镜像和容器的操作以及网络与存储管理。通过实际案例,如Web应用和数据库服务的部署,进一步加深对Docker应用的理解。Docker部署教程中包含了从基础到高级的各种操作步骤。
Docker简介与环境搭建什么是Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 采用客户端-服务器架构,Docker 客户端的命令可以连接 Docker 客户端和 Docker 服务端,也可以直接使用命令行与本地 Docker 服务端进行交互。
Docker安装步骤
Docker 支持在多种操作系统上安装,以下是主要的操作系统安装步骤:
在Ubuntu上安装Docker
-
更新包索引:
sudo apt-get update
-
安装包以允许
apt
使用存储库:sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
-
添加Docker官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
使用新的GPG密钥验证:
sudo apt-key fingerprint 0EBFCD88
-
添加Docker的APT存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
更新包索引并安装Docker CE:
sudo apt-get update sudo apt-get install docker-ce
- 验证Docker CE是否安装成功:
sudo docker run hello-world
在CentOS上安装Docker
-
卸载旧的Docker版本(如果已安装):
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine
-
安装必要的依赖包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加Docker存储库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装Docker CE:
sudo yum install docker-ce
-
启动Docker服务:
sudo systemctl start docker
- 验证Docker CE是否安装成功:
sudo docker run hello-world
Docker环境配置
设置Docker镜像的仓库
Docker 镜像仓库有官方的 Docker Hub 和私有的仓库,如 Docker Enterprise Edition 中的 Docker Trusted Registry (DTR),也可以使用其他第三方提供的镜像仓库,如阿里云、腾讯云等。设置仓库需要先登录到相应的仓库。
- 设置登录账号:
docker login # 输入用户名和密码
设置Docker的存储位置
默认情况下,Docker在Linux系统上的存储位置是 /var/lib/docker
,可以通过以下命令设置自定义的存储位置:
sudo mkdir -p /my/docker sudo mount -t tmpfs -o size=10G tmpfs /my/docker echo ' { "graph": "/my/docker" }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker
Docker镜像的使用与操作
获取Docker镜像
可以从 Docker Hub 或其他公共镜像仓库中获取 Docker 镜像。Docker Hub 拥有大量的官方镜像,包括 Linux 发行版、开发工具、Web 服务器等。
-
搜索镜像:
docker search ubuntu
- 拉取镜像:
docker pull ubuntu
查看本地镜像
使用 docker images
命令查看本地的 Docker 镜像列表。
docker images
输出结果:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest b0e2f0c3b4c9 5 weeks ago 64.2MB
删除Docker镜像
使用 docker rmi
命令删除本地的 Docker 镜像。
docker rmi ubuntu:latest
Docker容器的运行与管理
创建并运行容器
使用 docker run
命令创建并运行 Docker 容器。以下是一些常用的参数:
-d
:后台运行容器--name
:指定容器名称-p
:指定端口映射
示例:
docker run -d --name my-ubuntu -p 8080:80 ubuntu:latest
查看正在运行的容器
使用 docker ps
命令查看正在运行的 Docker 容器。
docker ps
输出结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c4567890abcdef ubuntu:latest "/bin/bash" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp my-ubuntu
停止和重启容器
使用 docker stop
命令停止容器。
docker stop my-ubuntu
使用 docker start
命令重启容器。
docker start my-ubuntu
删除容器
使用 docker rm
命令删除容器。
docker rm my-ubuntu
Docker网络与存储
Docker网络配置
Docker 通过多种网络模式来支持容器间的通信,包括桥接网络、主机网络、容器网络等。
-
创建桥接网络:
docker network create my-net
- 启动容器时指定网络:
docker run -d --name my-ubuntu --network my-net -p 8080:80 ubuntu:latest
Docker数据卷管理
Docker 数据卷是一种持久化存储机制,可以将数据保存在容器之外。这种方式的好处是,即使容器被删除,数据仍然可以保存下来。
-
创建数据卷:
docker volume create my-data
- 启动容器时挂载数据卷:
docker run -d --name my-ubuntu -v my-data:/app ubuntu:latest
Docker常用命令速查
常用命令介绍
以下是 Docker 常用的一些命令:
docker run
:创建并运行一个新的容器docker ps
:列出正在运行的容器docker images
:列出所有镜像docker build
:使用 Dockerfile 构建镜像docker rmi
:删除一个或多个镜像docker rm
:删除一个或多个容器
命令示例与解释
-
构建Docker镜像:
docker build -t my-app .
解释:
-t my-app
参数:给构建的镜像指定一个标签,这里指定为my-app
。.
表示 Dockerfile 文件在当前目录下。 -
从Dockerfile构建镜像并运行容器:
docker build -t my-app . && docker run -d --name my-app-container my-app
解释:
docker build -t my-app .
构建一个名为my-app
的镜像。docker run -d --name my-app-container my-app
从my-app
镜像运行一个后台容器,并命名为my-app-container
。
Docker部署经典案例
Web应用部署
部署一个简单的 Web 应用,例如使用 Flask 框架的 Python 应用。
-
创建一个简单的 Flask 应用:
# app.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0')
-
创建 Dockerfile 文件:
# Dockerfile FROM python:3.7 WORKDIR /app COPY . /app RUN pip install -r requirements.txt CMD ["python", "app.py"]
-
构建并运行 Docker 镜像:
# 构建镜像 docker build -t my-web-app . # 运行容器 docker run -d --name my-web-container -p 8080:80 my-web-app
验证应用是否运行成功,可以使用浏览器访问
http://localhost:8080
,若看到 "Hello, World!",则表示应用启动成功。
数据库服务部署
部署一个简单的 MySQL 数据库服务。
-
创建 Dockerfile 文件:
# Dockerfile FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD=root ENV MYSQL_DATABASE=mydb ENV MYSQL_USER=myuser ENV MYSQL_PASSWORD=mypassword
-
构建并运行 Docker 镜像:
# 构建镜像 docker build -t my-mysql . # 运行容器 docker run -d --name my-mysql-container -p 3306:3306 my-mysql
验证数据库是否运行成功,可以使用 MySQL 客户端连接到新创建的数据库实例,命令如下:
mysql -h localhost -P 3306 -u myuser -p
通过以上步骤,可以成功地将 Web 应用和数据库服务部署到 Docker 中,充分利用 Docker 的优势,实现应用的快速部署和管理。
这篇关于Docker部署教程:新手入门详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-09云原生周刊:在Docker上部署大语言模型
- 2024-12-05Docker教程:新手快速入门指南
- 2024-12-05Docker项目实战:新手教程与案例解析
- 2024-12-04Docker入门教程:快速掌握基础操作
- 2024-12-04Docker入门教程:轻松搭建你的第一个容器化应用
- 2024-12-04Docker-Compose 入门教程:全面解析基础命令与应用场景
- 2024-12-04Docker入门:新手必读的简单教程
- 2024-12-02基于Kafka、Spark、Airflow、PostgreSQL和Docker的端到端数据工程实战教程