Docker 基础
大约 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有所帮助。
以上是本篇文章的全部内容,如对你有帮助帮忙点赞 + 转发 + 收藏。