为了账号安全,请及时绑定邮箱和手机立即绑定

Docker项目实战:新手入门与初级教程

标签:
Docker 容器
概述

本文详细介绍了Docker的基础知识和安装方法,涵盖了Docker的优势、安装步骤以及常用命令。文中还提供了多个Docker项目实战案例,包括搭建Web应用环境、数据库环境和开发环境,旨在帮助读者深入了解和应用Docker项目实战。

Docker简介与安装
什么是Docker

Docker是一种开源的容器化技术,它使得开发者能够在一致的、轻量级的、可移植的环境中开发、部署和运行应用程序。Docker的核心是一个称为容器的可执行软件单元,它包含了运行应用程序所需的所有库、依赖项和配置文件。

Docker的优势
  1. 轻量级与可移植性:容器可以在各种硬件上轻松运行,无需考虑底层操作系统或硬件的具体细节。
  2. 快速部署:使用容器化技术,开发和运维团队可以更快地部署和更新应用程序。
  3. 资源利用率高:容器共享宿主机的操作系统内核,因此相比虚拟机,容器占用的资源更少。
  4. 环境一致性:从开发到测试、再到生产环境,容器能够保证一致的运行环境,减少了“但在我机器上运行得好好的”的问题。
  5. 易于维护和扩展:容器的轻量级特点使得它们易于复制、缩放和管理。
如何安装Docker

在Windows、macOS和Linux上安装Docker的方式有所不同,以下是安装指导:

在Windows上安装Docker

  1. 访问.docker.com并下载适用于Windows的Docker Desktop。
  2. 安装完成后,打开Docker Desktop应用程序。
  3. 如果你的系统是基于Windows 10,可能会有提示安装Hyper-V和容器功能,请按照安装指南进行操作。

在macOS上安装Docker

  1. 访问.docker.com并下载适用于Mac的Docker Desktop。
  2. 安装完成后,打开Docker Desktop应用程序。

在Linux上安装Docker

不同的Linux发行版安装Docker的方法略有不同,以下是以Ubuntu为例:

# 更新包列表
sudo apt-get update

# 安装必要的软件包,用于Docker的安装
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 -

# 添加D מדובר的Docker官方的仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 再次更新包列表
sudo apt-get update

# 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证Docker是否安装成功
sudo docker --version

对于其他Linux发行版,如CentOS、Fedora和Arch Linux,安装步骤如下:

CentOS

# 安装必要的软件包
sudo yum install -y yum-utils

# 设置Docker的yum仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动并启用Docker
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
sudo docker --version

Fedora

# 安装Docker
sudo dnf install docker-ce docker-ce-cli containerd.io

# 启动并启用Docker
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
sudo docker --version

Arch Linux

# 安装Docker
sudo pacman -S docker

# 启动并启用Docker
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
sudo docker --version
Docker的常用命令

以下是一些常用的Docker命令:

  • docker run:运行一个新的容器实例。
  • docker ps:查看正在运行的容器。
  • docker ps -a:查看所有容器(包括停止的)。
  • docker images:查看本地镜像。
  • docker rmi:删除本地镜像。
  • docker stop:停止容器。
  • docker rm:删除容器。

例如,启动一个名为my_app的容器:

docker run -d --name my_app nginx
Docker镜像管理
什么是Docker镜像

Docker镜像是一组文件的集合,其中包含应用程序及其运行所需的全部依赖项。当你启动一个容器时,Docker会从相应的镜像中读取这个集合,然后将镜像加载到内存中。

如何搜索和下载镜像

Docker Hub是Docker官方提供的镜像仓库,包含了大量的镜像。你可以搜索并下载这些镜像。

搜索镜像

docker search nginx

下载镜像

docker pull nginx

下载完成后,可以使用docker images命令查看镜像。

如何构建自己的Docker镜像
  1. 创建Dockerfile
# 使用官方的 Nginx 镜像作为基础镜像
FROM nginx:latest

# 将本地的index.html文件复制到镜像的指定位置
COPY index.html /usr/share/nginx/html/index.html
  1. 构建镜像

在包含Dockerfile的目录中执行:

docker build -t my-nginx .
  1. 运行容器
docker run -d --name my-nginx-container -p 8080:80 my-nginx
如何管理本地镜像
# 删除本地镜像
docker rmi my-nginx

# 列出本地镜像
docker images

# 更新本地镜像
docker pull my-nginx
Docker容器使用
什么是Docker容器

Docker容器是运行应用程序的环境,它基于Docker镜像。容器提供了进程隔离的能力,同时共享宿主机的操作系统内核,这使得容器轻量、快速且高效。

如何运行容器

基础运行

docker run -d --name my_container nginx

使用卷挂载运行

docker run -d --name my_container -v /host/path:/container/path nginx

使用端口映射运行

docker run -d --name my_container -p 8080:80 nginx
如何管理和停止容器

查看容器

docker ps  # 查看正在运行的容器
docker ps -a  # 查看所有容器

停止容器

docker stop my_container

删除容器

docker rm my_container
Docker项目实战案例
项目一:搭建Web应用环境
  1. 构建Dockerfile
FROM nginx:latest

COPY ./app /usr/share/nginx/html
  1. 构建镜像
docker build -t my-web-app .
  1. 运行容器
docker run -d --name my-web-app -p 8080:80 my-web-app
项目二:搭建数据库环境
  1. 构建Dockerfile
FROM mysql:latest

ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=mydb
COPY ./init.sql /docker-entrypoint-initdb.d/init.sql
  1. 构建镜像
docker build -t my-mysql .
  1. 运行容器
docker run -d --name my-mysql -p 3306:3306 my-mysql
  1. 初始化数据库
-- init.sql
CREATE TABLE users (id INT, name VARCHAR(255));
INSERT INTO users (id, name) VALUES (1, 'Alice');
INSERT INTO users (id, name) VALUES (2, 'Bob');
项目三:搭建开发环境
  1. 构建Dockerfile
FROM ubuntu:latest

RUN apt-get update && apt-get install -y \
    python3-pip \
    python3-dev \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
  1. 构建镜像
docker build -t my-dev-env .
  1. 运行容器
docker run -it --name my-dev-env -v /host/path:/app my-dev-env /bin/bash
Docker网络与存储
Docker网络配置

默认网络

docker run -d --name my_container --network my_network my_image

自定义网络

docker network create my_network

查看网络

docker network ls

连接容器到网络

docker network connect my_network my_container
Docker存储配置

卷挂载

docker run -d --name my_container -v /host/path:/container/path my_image

数据卷容器

docker create --name my_data_container --volume /data my_image

弹性持久化卷

docker run -d --name my_container --mount type=volume,src=my_volume,dst=/container/path my_image
Docker最佳实践与调试技巧
Docker常用调试技巧

查看容器日志

docker logs my_container

进入容器

docker exec -it my_container /bin/bash

查看容器资源使用情况

docker stats my_container

镜像和容器清理

docker system prune  # 删除所有未被使用的容器、网络、镜像和构建缓存
Docker项目的维护与更新

更新运行中的容器

docker pull my_image
docker stop my_container
docker rm my_container
docker run -d --name my_container my_image

使用Docker Compose管理多容器应用

  1. 创建docker-compose.yml
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./app:/usr/share/nginx/html
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydb
    volumes:
      - my_db_data:/var/lib/mysql

volumes:
  my_db_data:
  1. 启动服务
docker-compose up -d
  1. 停止服务
docker-compose down

以上是Docker的入门与初级教程,希望对你有所帮助。如果你想更深入地学习Docker,可以参考Docker官方文档,或是参加在线课程,如在慕课网上可以找到相关的课程。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消