Docker基础

概念

docker

  1. docker是一种运行于linux和windows上的软件,用于创建、管理和编排容器。
  2. docker包含客户端与服务器,通过docker version可以看到。服务器称为docker引擎。
    在这里插入图片描述

镜像

  1. docker镜像是一个包含了基础的操作系统和应用的对象。
  2. 镜像等价于未运行的容器
  3. 镜像由多个层组成,每层叠加后,从外部看来就如一个独立的对象。

容器

  1. 容器比虚拟器更快并且性能更高 – 虚拟机运行在完整的操作系统上,而容器会共享其所在主机的操作系统 / 内核。
  2. 镜像运行起来就是容器。

镜像

拉取镜像

docker image pull <repository>:<tag> 默认从官方仓库Docker Hub中进行拉取。

查看镜像

docker image ls
在这里插入图片描述

  • tag:镜像标签。没有标签的镜像称为悬虚镜像。latest并不能保证该镜像是最新的。一个镜像只会有一个tag。
  • image Id:两个镜像会存在相同的image Id。

查看全部镜像id:docker image ls -q
查看镜像的细节:docker image inspect <repository>:<tag>

...
 "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:6cebf3abed5fac58d2e792ce8461454e92c245d5312c42118f02e231a73b317f",
                "sha256:f7eae43028b334123c3a1d778f7bdf9783bbe651c8b15371df0120fd13ec35c5",
                "sha256:7beb13bce073c21c9ee608acb13c7e851845245dc76ce81b418fdf580c45076b",
                "sha256:122be11ab4a29e554786b4a1ec4764dd55656b59d6228a0a3de78eaf5c1f226c"
            ]
        },

镜像摘要

镜像摘要是基于镜像内容的密码散列值,可以唯一标识一个镜像。
查看摘要:docker image ls --digest
在这里插入图片描述
通过摘要拉取镜像:docker image pull <repository>@<摘要值>

删除镜像

删除单个镜像:docker image rm <镜像名称>,镜像名称就是镜像列表的第一列值。
删除全部镜像:docker image rm $(docker image ls -q) -f

容器

查看容器

基本命令:docker contatiner ls
查看全部容器(包括停止的容器):docker contatiner ls -a

运行容器

docker container run <options> <image>:<tag> <app>
例如运行ubuntu镜像,并启动bash shell应用,-it表示将当前终端连接到容器的shell终端。
在这里插入图片描述运行容器并起名为zed:docker container run --name zed -it ubuntu /bin/bash
在这里插入图片描述hungry_为默认名字

暂停容器

通过name暂停:docker container stop zed

重启容器

通过name重启:docker container start zed

退出容器

  • exit退出,这种方式相当于结束bash,由于bash是容器中唯一进程,容器中没有进程运行时,容器会停止。
  • ctrl + pq容器会在后台运行

重新连接到容器

在这里插入图片描述

删除容器

先停止容器再删除容器
在这里插入图片描述

容器的重启策略

重启策略是容器的自我修复能力,可以在指定的事件或者错误后重启来完整自我修复。

应用的容器化

docker的核心思想:将应用整合到容器中,并在容器中运行。
步骤:

  1. 编写应用程序代码
  2. 创建Dockerfile
  3. 构建镜像
  4. 启动

以springboot为例子

  • jar和Dockerfile
    在这里插入图片描述Dockerfile内容:
FROM openjdk:8
MAINTAINER YOU JIA
COPY ./hello-docker-0.0.1-SNAPSHOT.jar hellodocker.jar
CMD java -jar hellodocker.jar
  • 构建docker build -t myapp . 这时myapp的镜像会存在docker镜像中
    在这里插入图片描述- 启动docker run --name mywebapp -p 8080:8080 -d myapp -p是将系统的8080端口映射到容器的8080端口
  • 访问
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值