跳至主要內容

Docker 基础

bsfc.tech大约 2 分钟Docker

Docker是一个开源的应用容器引擎,它可以让开发者打包应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。下面将从基本概念、安装与运行、镜像与容器、Dockerfile、网络、数据管理几个方面进行详细解析,并给出相应示例。

1. Docker基本概念

  • 容器:Docker的核心概念,它是轻量级、可移植的执行环境,用来运行应用程序及其依赖。
  • 镜像:Docker镜像是创建容器的基础,类似虚拟机的快照,包含需要运行的程序、库、工具、配置文件等。
  • 仓库:集中存放镜像的地方,可以理解为代码仓库,Docker Hub是最常用的公共仓库。

2. 安装Docker

以Ubuntu系统为例,安装Docker可以通过以下命令:

sudo apt-get update
sudo apt-get install docker.io

3. 运行Docker

确保Docker服务正在运行:

### 启动docker
sudo systemctl start docker
### 开启开机启动docker
sudo systemctl enable docker

4. 镜像操作示例

  • 拉取镜像:从Docker Hub获取Ubuntu镜像
docker pull ubuntu
  • 查看本地镜像
docker images
  • 运行镜像:基于Ubuntu镜像启动一个容器,并进入交互式bash shell
docker run -it ubuntu /bin/bash

5. Docker容器操作

  • 列出运行中的容器

    docker ps
    
  • 退出容器: 在容器的命令行中,输入exit或按Ctrl+D

  • 后台运行容器

    不进入容器直接启动

    docker run -d ubuntu sleep 3600
    

6. Dockerfile

Dockerfile是一个文本文件,用于自动化构建镜像过程。示例:

# 使用官方 Ubuntu 镜像作为基础镜像
FROM ubuntu:latest

# 设置作者信息
LABEL maintainer="yourname@example.com"

# 更新apt源并安装Apache
RUN apt-get update && apt-get install -y apache2

# 将本地文件复制到容器中
COPY index.html /var/www/html/index.html

# 开放80端口
EXPOSE 80

# 启动Apache服务
CMD ["apachectl", "-DFOREGROUND"]

构建镜像:

docker build -t my-apache2 .

运行基于此镜像的容器:

docker run -d -p 8080:80 my-apache2

7. Docker网络

Docker提供了几种网络模式,如bridge(默认)、host、none和自定义网络。创建自定义网络示例:

docker network create my-net

在创建容器时指定网络:

docker run -d --network=my-net --name container1 nginx

8. 数据管理

为了持久化数据,推荐使用数据卷(volume)或绑定宿主机目录。

  • 创建并使用数据卷
docker volume create my-volume
docker run -d -v my-volume:/data --name container2 nginx
  • 绑定宿主机目录
docker run -d -v $(pwd)/html:/usr/share/nginx/html --name container3 nginx

以上就是Docker的一些基础知识和示例操作,希望对您学习Docker有所帮助。


以上是本篇文章的全部内容,如对你有帮助帮忙点赞 + 转发 + 收藏。