day12-Docker操作

1.Docker技术介绍

Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。

在这里插入图片描述

1.1Docker 核心对象

1.1.1 镜像(Image)

Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等,可以暂时先将其理解为一个安装程序。

1.1.2 容器(Container)

Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。

1.2Docker 应用架构分析

Docker 是一种Client/Server架构的应用程序,
在这里插入图片描述

~Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
~Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
~Docker Daemon是docker的服务线程,处理Docker客户端命令。
~Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。

docker pull 执行过程:
1)客户端将指令发送给docker daemon 2)docker daemon 先检查本地images中有没有相关的镜像 3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

docker run 执行过程:
检查本地是否存在指定的镜像,不存在就从公有仓库下载 利用镜像创建并启动一个容器 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去 从地址池配置一个 ip 地址给容器 执行用户指定的应用程序

2 .Docker服务基本操作

2.1启动docker服务

 systemctl start docker

2.2 查看Docker状态

systemctl status docker

2.3 设置Docker开机自启

systemctl enable docker

2.4 禁用Docker开机自启

systemctl disable docker

2.5 重新启动Docker服务

 systemctl restart docker

2.6 查看Docker信息

docker info

查看docker info中具体key的信息,例如

docker info | grep 'Docker Root Dir:'

2.7 停止docker服务

systemctl stop docker

2.8 Docker镜像加速

直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

3.Docker镜像操作实践

3.1下载镜像

docker pull 镜像名

3.2 浏览镜像文件

docker images

3.3查看镜像详情

docker inspect 镜像名或镜像id
docker inspect hello-world
docker images 查看所有镜像文件列表

3.4 查看镜像历史

一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:

docker history 镜像名或镜像id

docker history hello-world

3.5 导出镜像文件

镜像导出(linux系统中的镜像文件下载到本地-例如window)

docker save  hello-world | gzip > hello-world.tar.gz  

3.6 删除镜像文件

docker image rm hello-world

3.7 导入镜像操作

docker load < hello-world.tar.gz  

3.8 运行镜像文件

docker run hello-world 运行镜像文件
docker build -t jdk:8  创建镜像文件
doclker push 上传镜像文件	

4.Docker 容器操作

4.1 创建并启动容器

docker run -it xxxx bash  #创建并启动
docker run -it centos:7 bash
-d后台执行  -p 定义端口 , -e环境配置  -v挂载mulv
docker container start 802  #启动已存在容器

1)xxxx - 镜像名, 或 image id 的前几位,
2)-it 这是两个参数(-i表示交互式操作, -t 表示终端)
3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令

4.2 查看Docker中的容器

docker ps   # 查看docker运行中的容器
docker ps -a  #查看docker运行中的所有容器
docker container logs 802  # 查看容器日志信息 802容器id
docker inspect 容器id  #查看指定容器信息

4.3 进入指定容器

docker exec -it 802 bash #802为容器id

停止或重启容器

docker container start 802  #启动已存在容器
docker container stop 802  #停止容器
docker container restart 802  #重新启动容器


4.4 退出容器

exit

4.5 删除容器

docker container rm 802 #802为容器id
docker container prune #清理所有的状态容器

5.数据卷

5.1介绍

在容器中管理数据主要有两种方式:

挂载主机目录 (Bind mounts)-最常用 (docker run -v 宿主机目录:容器目录)
数据卷(Volumes)

数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。

5.2 创建数据卷

docker volume create container-vol

5.3 查看所有数据卷

docker volumes ls

5.4 查看指定 数据卷 的信息

docker volume inspect container-vol

5.5 启动挂载数据卷的容器

docker run -it -v container-vol:/root centos:7 bash

5.6 删除数据卷

docker volume rm container-vol

5.7清理无主数据卷

docker volume prune

5.8 挂载主机目录

docker run -it -v /usr/app:/opt/app centos:7 bash

其中:
1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。

在这里插入图片描述

5.9 查看挂载目录信息

docker inspect 91a #91a 为容器id

6.网络操作

6.1 创建

docker network create t-net 网络名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值