本文提供了Docker的基础操作和使用方法,涵盖了安装、基本命令、容器管理和网络配置等内容。通过详细的操作步骤和示例,帮助读者快速掌握Docker的核心概念和实际应用。文章还介绍了如何使用Docker部署Web应用、运行数据库服务以及搭建开发环境。希望读者能够通过这些教程进一步深入学习和应用Docker。
Docker是一种开源的应用容器引擎,它可以让开发者将应用及其依赖打包到一个可移植的容器中,以便于在任何环境中运行。Docker利用操作系统容器化技术来提供轻量级的虚拟化解决方案,使得开发、测试、部署和迁移应用更加简单和高效。
Docker通过容器化技术提供了以下优势:
应用场景:
# 在PowerShell中检查Docker服务是否启动 docker --version
# 在终端中检查Docker服务是否启动 docker --version
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update sudo apt-get install docker-ce
docker --version
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
docker --version
执行以下命令查看Docker版本信息:
docker --version
如果命令执行结果显示Docker的版本信息,表示安装成功。
# 拉取一个官方的Ubuntu镜像 docker pull ubuntu
# 创建Dockerfile echo "FROM ubuntu:latest RUN apt-get update && apt-get install -y python3 CMD [\"python3\", \"-m\", \"http.server\"]" > Dockerfile
# 构建镜像 docker build -t my-python-server .
# 列出本地镜像 docker images
# 删除镜像(镜像ID或名称) docker rmi image_id_or_name
# 使用拉取的ubuntu镜像启动容器 docker run -it ubuntu /bin/bash
# 使用自定义镜像启动容器,并将9000端口映射到主机的9000端口 docker run -p 9000:9000 -d my-python-server
# 停止容器(容器ID或名称) docker stop container_id_or_name
# 列出所有正在运行的容器 docker ps # 列出所有容器(包括非运行状态) docker ps -a
# 删除镜像(镜像ID或名称) docker rmi image_id_or_name
# 删除容器(容器ID或名称) docker rm container_id_or_name
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 使用ubuntu镜像启动容器,并分配一个交互式的shell docker run -it ubuntu /bin/bash # 启动容器并指定容器名称 docker run --name my_ubuntu -it ubuntu /bin/bash
docker build [OPTIONS] PATH
# 构建镜像并指定名称 docker build -t my-python-server .
# 拉取镜像 docker pull nginx # 推送镜像 docker push my-python-server
# 删除容器 docker rm container_id_or_name # 删除镜像 docker rmi image_id_or_name
# 创建Dockerfile echo "FROM nginx:latest COPY . /usr/share/nginx/html" > Dockerfile
# 构建镜像 docker build -t my-web-app . # 启动容器 docker run -d -p 8080:80 my-web-app
在浏览器中访问http://localhost:8080
,可以看到部署的Web应用。
# 创建Dockerfile echo "FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD=root ENV MYSQL_DATABASE=mydb" > Dockerfile
# 构建镜像 docker build -t my-mysql-db . # 启动容器 docker run -d -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mydb my-mysql-db
使用数据库客户端连接到数据库容器,地址为localhost
,端口为3306
,用户名为root
,密码为root
。
# 创建Dockerfile echo "FROM ubuntu:latest RUN apt-get update && apt-get install -y python3-pip COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt CMD [\"python3\", \"app.py\"]" > Dockerfile
# 构建镜像 docker build -t my-dev-env . # 启动容器 docker run -it my-dev-env /bin/bash
进入容器后,可以在容器中运行Python应用,确保开发环境的一致性。
Docker容器可以在不同的网络模式下运行:
# 创建一个自定义网络 docker network create my_custom_network # 启动容器并连接到自定义网络 docker run -d --network my_custom_network ...
数据卷是Docker容器和宿主机之间共享数据的机制,可以用于持久化存储。
# 创建一个数据卷 docker volume create my_data_volume # 启动容器并挂载数据卷 docker run -d -v my_data_volume:/data my_container
Docker Compose是一个工具,用于定义和运行多容器Docker应用。通过一个名为docker-compose.yml
的配置文件来描述应用的配置。
version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: mydb
# 启动应用 docker-compose up -d # 停止应用 docker-compose down
通过以上教程,读者可以快速掌握Docker的基础操作,包括安装、基本操作、常用命令、实践案例和进阶指南。希望读者能够进一步深入学习和应用Docker,提高开发效率,更好地管理应用环境。