docker入门 --1

介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
1,DockerClient客户端,
2,Docker Daemon守护进程
3,Docker Image镜像
4,DockerContainer容器

Docker 的优点

1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

核心概念

Docker大部分的操作都围绕着它的三大核心概念: 镜像、容器和仓库(本章只用到镜像/容器,仓库在后面课程介绍)
1.镜像
Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板
例如,一个镜像可以包含一个基本的操作系统环境(例如:ubuntu16.04),可以把它称为一个 ubuntu16.04 镜像

2.容器
1.Docker 容器类似于一个轻量级的沙箱, Docker利用容器来运行和隔离应用
2.容器是从镜像创建的应用运行实例 它可以启动、开始、停止 删除,而这些容器都是彼此相互隔离、互不可见的
3.可以把容器看作一个简易版的 Linux 系统环境(包括 root 用户权限、进程空间、用户空间和网络空间等)
以及运行在其中的应用程序打包而成的盒子

3.仓库
Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。

 注1:Docker 仓库和仓库注册服务器( Registry)的区别
      分际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库 每个仓库集中存放某一类镜像,
      例如存放 Ubuntu 操作系统镜像的仓库,其中可能包括 16.04 18 04 等不同版本的镜像,它则被称Ubuntu仓库

安装

首先创建一台虚拟机,然后通过FinalShell连接,方便copy命令(当然你也可以用其他的,网络管理软件),
我们切换到root用户
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
(注意这个可能需要很久,请在稳定网络下更新)
(期间记得按Y)
$ yum update

3、卸载旧版本(如果安装过旧版本的话)
$ yum remove docker docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6,安装最新版本的Docker

$ yum install docker-ce docker-ce-cli containerd.io
(期间记得按Y)

7,启动Docker并设置开机启动
$ systemctl start docker
$ systemctl enable docker

8,验证Docker
$ docker version
在这里插入图片描述
出现数据则说明安装成功。。。

Docker HelloWorld

Docker HelloWorld测试;
$ docker run hello-world
运行完命令,当仓库中这个不存在的话,则到仓库中自动下载,(默认的远程仓库 https://hub.docker.com/ 网速稀烂)

执行 docker run hello-world的过程看如下图例:

在这里插入图片描述
Docker默认远程仓库是https://hub.docker.com/
因为这是个国外的网站,所以下载很慢,
所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

配置步骤如下:
1,登录进入阿里云镜像服务中心,获取镜像地址
进入阿里云容器镜像服务地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
使用你的淘宝账号,支付宝等登录

在这里插入图片描述
按照下面的步骤输入命令之后,可以随便下载一下测速:
在这里插入图片描述

可以看到现在是以MB为单位的下载速度了。

Docker基本命令

启动Docker
systemctl start docker

停止Docker
systemctl stop docker

重启Docker
systemctl restart docker

开机启动Docker
systemctl enable docker

查看Docker概要信息
docker info

查看Docker帮助文档
docker --help

查看Docker版本信息
docker version

Docker镜像常用命令

1,docker images 列出本机所有镜像

在这里插入图片描述

名词介绍
REPOSITORY镜像的仓库源
TAG镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;
IMAGE ID镜像ID,镜像的唯一标识
CREATE镜像创建时间
SIZE镜像大小

可选参数:

OPTIONS解释
-a显示所有镜像(包括中间层)
-q只显示镜像ID
-qa可以组合
–digests显示镜像的摘要信息
–no-trunc显示完整的镜像信息

2,docker search 搜索镜像

和 https://hub.docker.com/ 这里的搜索效果一样;

可选参数:

–no-trunc显示完整的镜像描述
-s列出收藏数不小于指定值的镜像
–automated只列出Docker Hub自动构建类型的镜像

3,docker pull 下载镜像
docker pull 镜像名称:[TAG]
注意,当你不加版本的时候默认选择下载最高版本,

4,docker rmi 删除镜像

1,删除单个:docker rmi 镜像名称:[TAG]
注意,当你不加版本的时候默认选择删除最高版本,

有镜像生成的容器再运行时候,会报错,删除失败;
我们需要加 -f 强制删除

2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]
空格隔开

3,删除全部:docker rmi -f $(docker images -qa)

Docker 容器常用命令

1、Docker创建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

–name=“容器新名字”:为容器指定一个名称;
-i:以交互模式运行容器,通常与-t或者-d同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-d: 后台运行容器,并返回容器ID;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

启动普通容器: docker run --name 别名 镜像ID
启动交互式容器: docker run -it --name 别名 镜像ID 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

注意:
(1)启动普通容器的方式基本不用,没有伪终端,没有太大价值;
(2)启动交互式容器的方式,容器一创建完毕,立即进入伪终端

守护式方式创建并启动容器
docker run -di --name 别名 镜像ID
执行完命令后,终端依然再宿主机上;

2、Docker列出容器
docker ps [OPTIONS]

OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
–no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker ps -n 2 显示最近创建的2个容器
docker ps -f status=exited 查看停止的容器

3、Docker退出容器
exit 容器停止退出
ctrl+P+Q 容器不停止退出

4、Docker进入容器

a、docker attach 容器ID or 容器名
不能进入停止的状态的容器

b、Docker进入容器执行命令
docker exec -it 容器名称 或者 容器ID 执行命令
直接操作容器,执行完 回到 宿主主机终端;
我们一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等

5、Docker启动容器
docker start 容器ID or 容器名

6、Docker重启容器
docker restart 容器ID or 容器名

7、Docker停止容器
docker stop 容器ID or 容器名

暴力删除,直接杀掉进程 (不推荐)
docker kill 容器ID or 容器名

8、Docker删除容器
docker rm 容器ID

如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;
强制删除docker rm -f 容器ID

删除多个容器
docker rm -f 容器ID1 容器ID2 中间空格隔开

删除所有容器
docker rm -f $(docker ps -qa)

9、Docker容器日志
直接去docker容器文件里找
具体位置:/var/lib/docker/containers/
在这里插入图片描述
将文件下载下来,就可以查看了,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值