第12期 - Docker学习

Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。

不定时分享生活趣事及技术,关注让你更潮流~

Docker容器是如何工作的?

Docker的工作可以分为三个主要部分:

  • 镜像(Image):Docker镜像是一个轻量级、可执行的独立软件包,包含运行应用所需的一切:代码、运行时、库、环境变量和配置文件。

  • 容器(Container):容器是镜像的运行实例。当你从镜像运行容器时,Docker引擎在宿主机上为容器分配一个可隔离的环境,而不需要启动一个完整的操作系统。

  • 仓库(Registry):Docker仓库用于存放镜像,支持公开和私有两种模式。Docker Hub是最流行的公共Docker仓库,用户可以从中拉取镜像或者推送自己的镜像。

(一)Centos7安装Docker

以下操作需要切换到root权限

  • 更新yum
yum update
  • 安装yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum软件源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 从设置好的软件源中,安装docker-ce(免费社区版)
yum -y install docker-ce
  • 检验安装成功和版本
docker -v
  • 启动docker

#操作启动 service docker start

#操作重启 service docker restart

#操作关停 service docker stop

  • 检查docker运行状态
systemctl status docker
  • Centos开机自动启动docker

#设置开机自启 systemctl enable docker

#停用开机自启 systemctl disable docker

(二)常用的Docker命令

  • 拉取镜像:
docker pull <镜像名>:<标签>

例如,拉取最新的Ubuntu镜像:

docker pull ubuntu:latest
  • 查看本地镜像:
docker images
  • 构建镜像:
docker build -t <镜像名>:<标签> <Dockerfile路径>

例如,使用当前目录的Dockerfile构建镜像:

docker build -t myimage:latest
  • 删除镜像:
docker rmi <镜像ID或镜像名>

(三)容器操作命令

  • 运行容器:
docker run -d --name <容器名> <镜像名>:<标签>

例如,后台运行一个名为mycontainer的容器:

docker run -d --name mycontainer ubuntu:latest
  • 查看运行中的容器:
docker ps
  • 查看所有容器(包括未运行的):
docker ps -a
  • 进入容器:
docker exec -it <容器ID或容器名> /bin/bash

例如,进入mycontainer容器:

docker exec -it mycontainer /bin/bash
  • 停止容器:
docker stop <容器ID或容器名>
  • 启动容器:
docker start <容器ID或容器名>
  • 删除容器:
docker rm <容器ID或容器名>
  • 删除所有停止的容器:
docker container prune

(四)网络相关命令

  • 查看网络:
docker network ls
  • 创建网络:
docker network create --driver bridge <网络名>
  • 连接容器到网络:
docker network connect <网络名> <容器名>
  • 断开容器与网络的连接:
docker network disconnect <网络名> <容器名>

(五)数据卷和持久化存储

  • 创建数据卷:
docker volume create <卷名>
  • 列出所有数据卷:
docker volume ls
  • 删除数据卷:
docker volume rm <卷名>
  • 运行容器时挂载数据卷:
docker run -d -v <卷名>:<容器内路径> --name <容器名> <镜像名>