Docker (应用容器引擎) 速学

 一. Docker入门

1. Docker的概述

        (官网) Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows操作系统的机器上,可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2. Docker三个基本概念

镜像(Image):Docker 镜像,就相当于是一个 root 文件系统。将应用程序依赖的函数库,环境,配置等文件打包在一起的静态文件包。

容器(Container):镜像是静态的定义,容器是镜像运行时的实体,是一个动起来的文件包。简单来说就是将静态文件包运行起来变成了容器。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

二. CentOS安装Docker

1. 卸载

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

2. 安装docker

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

3. 更新本地镜像源

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast

 4. 下载docker

yum install -y docker-ce

5. 启动docker(如果启动失败,可能是未关闭防火墙原因)

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

docker -v # 查看docker版本

三. 其他安装

1. CentOS7安装DockerCompose

        1.1 下载

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

        1.2 修改文件权限

# 修改权限
chmod +x /usr/local/bin/docker-compose

        1.3 Base自动补全命令

# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

# 如果这里出现错误,需要修改自己的hosts文件
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

2. Docker镜像仓库

        搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。

        2.1 简化版镜像仓库

# 命令中/var/lib/registry目录是私有镜像库存放数据的目录
docker run -d \
    --restart=always \
    --name registry	\
    -p 5000:5000 \
    -v registry-data:/var/lib/registry \
    registry

        2.2 带有图形化界面版本

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=传智教育私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

        2.3 配置Docker信任地址

# 我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker

四. Docker镜像的基本操作

1. 拉取、查看镜像

        1.1 首先去镜像仓库DockerHub搜索nginx镜像

        1.2 拉取自己需要的镜像 DockerHub

# 拉取nginx镜像
docker pull nginx

        1.3 查看拉取到的镜像

docker images

2. 保存、导入镜像

        2.1 导出镜像到磁盘

# docker save -o [保存的目标文件名称] [镜像名称]
docker save -o nginx.tar nginx:latest

        2.2 加载镜像

# 先删除本地的nginx镜像
docker rmi nginx:latest
# 然后运行命令,加载本地文件
docker load -i nginx.tar

3. 其他操作

        3.1 查看某命令用法

# 查看docker上某命令的用法
docker [某命令] --help

        3.2 关闭防火墙

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

        3.3 查看docker版本

docker -v

        3.4 配置镜像加速

        国内从DockerHub拉取镜像较为困难,可以配置镜像加速器解决。阿里云镜像获取地址:阿里云登录 - 欢迎登录阿里云,登陆后左侧菜单选中镜像加速器就可以看到你的专属地址。

五. Docker容器的基本操作

1. 容器保护三个状态

  • 运行:进程正常运行

  • 暂停:进程暂停,CPU不再运行,并不释放内存

  • 停止:进程终止,回收进程占用的内存、CPU等资源

2. 容器相关命令

  • docker run: 创建并运行一个容器,处于运行状态

    • # 创建容器命令 <docker run --name containerName -p 80:80 -d nginx:latest>

    • --name : 给容器起一个名字,比如叫做mn

    • -p : 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

    • -d : 后台运行容器

    • nginx : 镜像名称,例如nginx

  • docker rm: 删除一个容器

    • -f : 强制删除一个容器

  • docker ps: 查看正在运行的容器

    • -a : 查看所有容器(运行和停止)

  • docker logs: 查看容器的日志信息

    • -f : 等待持续输出

  • docker exec :进入容器内部,执行一个命令

    • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

    • ng :要进入的容器的名称

    • bash:进入容器后执行的命令,bash是一个linux终端交互命令

  • docker unpause: 让一个容器从暂停状态恢复运行

  • docker stop : 停止一个运行的容器

  • docker start: 让一个停止的容器再次运行

  • docker pause: 让一个运行的容器暂停

3. 数据卷(容器数据管理)

        3.1 数据卷的概述

        数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。数据卷的作用是将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。

        3.2 数据集操作命令

  • docker volume: 数据卷操

  • docker volume create:创建数据卷

  • docker volume ls:查看所有数据卷

  • docker volume inspect:查看数据卷详细信息,包括关联的宿主机目录位置

  • docker volume rm:删除指定数据卷

  • docker volume prune:删除所有未使用的数据卷

        3.3 挂载数据卷

# 可以通过 -v 参数来挂载一个数据卷到某个容器内目录
docker run --name ng -p 8080:80 -v html:/root/html -d nginx

六. Dockerfile && Docker-Compose

1. Dockerfile自定义镜像概述

        Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像,每一个指令都会形成一层Layer,更新详细语法说明可以参考官网文档

2. Docker-Compose的概述

        基于Compose文件快速部署分布式应用,无需手动创建和运行容器! Compose文件是一个文本文件,描述每个容器如何运行,更新详细语法说明可以参考参考官网

version: "3.8"
 services:
  mysql:
    image: mysql:5.7.25
    environment:
     MYSQL_ROOT_PASSWORD: 1234 
    volumes:
     - "/tmp/mysql/data:/var/lib/mysql"
     - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
  web:
    build: .
    ports:
     - "8090:8090"

3. Docker镜像仓库

        镜像仓库可分为2种:远程仓库:可以理解成云仓库、公有仓库,是由某个组织、公司维护的仓库,对互联网开放,所有人共享官方的仓库本地仓库:可以理解为公司的私有仓库,不对外开放。一般情况下只在公司内网中使用,用于加快镜像拉取速度、维护公司资产。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10JQK炸

如果对您有所帮助,请给点鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值