Docker容器

Docker部署教程:新手入门详解

本文主要是介绍Docker部署教程:新手入门详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述

本文提供了详细的Docker部署教程,适合新手入门学习。内容涵盖Docker的安装、环境配置、镜像和容器的操作以及网络与存储管理。通过实际案例,如Web应用和数据库服务的部署,进一步加深对Docker应用的理解。Docker部署教程中包含了从基础到高级的各种操作步骤。

Docker简介与环境搭建

什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 采用客户端-服务器架构,Docker 客户端的命令可以连接 Docker 客户端和 Docker 服务端,也可以直接使用命令行与本地 Docker 服务端进行交互。

Docker安装步骤

Docker 支持在多种操作系统上安装,以下是主要的操作系统安装步骤:

在Ubuntu上安装Docker

  1. 更新包索引:

    sudo apt-get update
  2. 安装包以允许 apt 使用存储库:

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  3. 添加Docker官方的GPG密钥:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. 使用新的GPG密钥验证:

    sudo apt-key fingerprint 0EBFCD88
  5. 添加Docker的APT存储库:

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  6. 更新包索引并安装Docker CE:

    sudo apt-get update
    sudo apt-get install docker-ce
  7. 验证Docker CE是否安装成功:
    sudo docker run hello-world

在CentOS上安装Docker

  1. 卸载旧的Docker版本(如果已安装):

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine
  2. 安装必要的依赖包:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 添加Docker存储库:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装Docker CE:

    sudo yum install docker-ce
  5. 启动Docker服务:

    sudo systemctl start docker
  6. 验证Docker CE是否安装成功:
    sudo docker run hello-world

Docker环境配置

设置Docker镜像的仓库

Docker 镜像仓库有官方的 Docker Hub 和私有的仓库,如 Docker Enterprise Edition 中的 Docker Trusted Registry (DTR),也可以使用其他第三方提供的镜像仓库,如阿里云、腾讯云等。设置仓库需要先登录到相应的仓库。

  1. 设置登录账号:
    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 服务器等。

  1. 搜索镜像:

    docker search ubuntu
  2. 拉取镜像:
    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 通过多种网络模式来支持容器间的通信,包括桥接网络、主机网络、容器网络等。

  1. 创建桥接网络:

    docker network create my-net
  2. 启动容器时指定网络:
    docker run -d --name my-ubuntu --network my-net -p 8080:80 ubuntu:latest

Docker数据卷管理

Docker 数据卷是一种持久化存储机制,可以将数据保存在容器之外。这种方式的好处是,即使容器被删除,数据仍然可以保存下来。

  1. 创建数据卷:

    docker volume create my-data
  2. 启动容器时挂载数据卷:
    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:删除一个或多个容器

命令示例与解释

  1. 构建Docker镜像:

    docker build -t my-app .

    解释:-t my-app 参数:给构建的镜像指定一个标签,这里指定为 my-app. 表示 Dockerfile 文件在当前目录下。

  2. 从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-appmy-app 镜像运行一个后台容器,并命名为 my-app-container

Docker部署经典案例

Web应用部署

部署一个简单的 Web 应用,例如使用 Flask 框架的 Python 应用。

  1. 创建一个简单的 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')
  2. 创建 Dockerfile 文件:

    # Dockerfile
    FROM python:3.7
    WORKDIR /app
    COPY . /app
    RUN pip install -r requirements.txt
    CMD ["python", "app.py"]
  3. 构建并运行 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 数据库服务。

  1. 创建 Dockerfile 文件:

    # Dockerfile
    FROM mysql:5.7
    ENV MYSQL_ROOT_PASSWORD=root
    ENV MYSQL_DATABASE=mydb
    ENV MYSQL_USER=myuser
    ENV MYSQL_PASSWORD=mypassword
  2. 构建并运行 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部署教程:新手入门详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!