Docker个人学习总结(入门级)

Tips

仅仅做一个部署Docker的小小的总结

Docker为什么会出现

比如公司开发部门开发了一款产品,开发完了要上线使用。对于开发的负责人来说,他只需要把代码写好,打包即可在本地正常运行。

而真正要给客户使用的话,客户那边肯定是要对操作系统、运行环境等等进行一系列的配置,这个过程其实是比较繁琐的。如果是多个客户的话就要配置多次。

这些事务一般是交给公司的运维人员,那面临这种问题运维肯定是要崩溃的。而且产品的版本可能要迭代更新,要考虑不同环境的兼容性等等,这些无疑是增加了工作量。

那有什么办法能解决这个繁琐的问题呢?
在这里插入图片描述

Docker给出了一个解决方案,简单来说就是把软件开发的代码、数据连同开发环境和系统的配置一同打包交付给运维,运维不需要重新配置乱七八糟的东西就可以直接在机器上正常运行。

一句话总结:从系统环境开始,自底向上打包应用,打破“代码即应用”的观念。

Docker的三大概念

1.镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。

2.容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。

3.仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与仓库注册服务器(Registry)的区别:仓库注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。国内的公开仓库包括阿里云和网易云等。

简单概括:
镜像:开发打包好的可交付的运行环境就是镜像文件,只有通过该镜像文件才能生成Docker容器.镜像文件相当于容器的模板,可生成多个同时运行的容器。
容器:一个容器运行一个服务,可以通过Docker管理运行实例。
仓库:就是存储镜像的地方,可发布可拉取镜像。

Docker与VM

1.Docker不需要Hypervisor实现硬件资源虚拟化,而是直接使用实际物理机的硬件资源,VM则要占用更多的抽象层,所以Docker的效率更高。

2.VM要重新加载一个OS内核,虚拟机软件新建时要加载Guest OS,这个加载时间时分钟级的,配置过VMware的人肯定懂的,而Docker直接用宿主机的OS,新建一个Docker容器的时间是秒级的。

Docker安装

下面主要介绍CentOs7环境下安装Docker-CE(社区版)
打开终端,进入sudo,然后一步一步傻瓜式复制粘贴即可

1.安装yum-utils

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

2.配置仓库

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

3.更新 yum 软件包索引

yum makecache fast

4.安装最新版本的 Docker CE

yum install docker-ce

5.启动Docker

systemctl start docker

6.配置阿里云镜像加速器
前往阿里云管理中心—— 传送门
注册一下即可。
在这里插入图片描述
找到“镜像加速器”——CentOS,然后在终端继续傻瓜式复制粘贴输入代码,配置daemon配置文件即可。

//新建daemon.json文件并配置内容
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://u7bqr5gq.mirror.aliyuncs.com"]
}
EOF

//重启服务
systemctl daemon-reload
systemctl restart docker

最后两行代码是重启Docker服务

然后我们查看一下是否配置好,输入以下代码

docker info

在这里插入图片描述
看到这个就说明配好了。

然后我们拉取一下hello-world 镜像

docker run hello-world

在这里插入图片描述
看到这个就说明拉取成功了

至此,安装配置Docker-CE就完成了。

Docker常用命令

首先贴一个 传送门,菜鸟教程的Docker命令大全

docker version
docker info
docker --help 

上面三个命令很好理解,重点是帮助命令

镜像命令

//列出主机上现有的镜像,
docker images [OPTIONS]
//OPTIONS说明
-a:列出所有
-p:显示镜像ID
//搜索Dockerhub上的镜像
docker search [OPTIONS] [image.name]
//OPTIONS说明
-s:列出收藏数不小于指定值的镜像,如docker search -s 30 tomcat
//拉取某个镜像,默认lastest
docker pull [image.name]
//删除某个镜像,默认lastest
docker rmi [OPTIONS] [image.name1] [image.name2] ...
//OPTIONS说明
-f:强制删除
//全部删除
docker rmi -f $(docker images -qa)

容器命令

首先有镜像才能创建容器,所以我们需要下一个CentOS镜像,docker pull centos即可
这里拉取的镜像是简化版的Linux镜像,不像VMware里配置的CentOS(4个G),这里只有200M
在这里插入图片描述

//新建容器并启动命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
//OPTIONS说明
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

//Docker打开tomcat,暴露在8888端口下
docker run -it -p 8888:8080 tomcat

//进入Docker-CentOS,交互并打开一个命令行终端
docker run -it IMAGE

//退出容器
exit        //停止再退出
ctrl+P+Q    //不停止退出

//启动、重启、停止、强制停止容器
docker start[restart][stop][kill] [OPTIONS] CONTAINER [CONTAINER...]
//列出正在运行的容器
docker ps [OPTIONS]
//OPTIONS说明
-a :显示所有的容器,包括未运行的
-q :静默模式,只显示容器编号
//删除容器
docker rm [OPTIONS][containers]...
//OPTIONS说明
-f:强制删除
//全部删除
docker rm -f $(docker ps -a -q)
//查看容器中运行的进程信息,支持 ps 命令参数
docker top [OPTIONS] CONTAINER [ps OPTIONS]
//连接到正在运行中的容器,直接进入命令终端,不启动新进程
docker attach [OPTIONS] CONTAINER
//在容器中打开新的命令终端,启动新进程
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
提交某个镜像
docker commit -m="提交信息" -a="作者" 容器ID 目标镜像名(自己取):版本标签
例如 docker commit -m="第一次提交" -a="cj" "ID" QWER/tomcat:1.1.0

Docker容器数据卷

作用:主要实现容器的持久化,同时完成容器间的数据继承和数据共享

用直接命令添加

docker run -it -v /宿主机绝对路径:/容器内目录 镜像名

1.容器和宿主机之间实现数据共享,共用一个数据地址。
2.容器停止退出后,主机进行修改数据,数据仍会同步到容器中去。
3.宿主机可以对文件和数据进行读写操作,而容器进行只读操作。

用DockerFile添加

DockerFile即对Docker镜像模板进行描述的文件,有自己的语法和规则,类似于shell脚本语言。

步骤:
1.首先在根目录下新建一个文件夹并进入(mkdir–cd–pwd)
2.在Dockerfile中使用VOLUME指令来给镜像添加一个或者多个数据卷
3.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值