第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 <容器名> <镜像名>