什么是Docker?带你入门,Docker的基本使用

全面理解什么是Docker? Docker 的基本使用

  1. 介绍docker历史
  2. docker主要能做什么?
  3. docker 的基本操作
  4. docker 的底层原理
  5. 镜像命令
  6. 容器命令
  7. 可视化管理镜像
  8. 如何实现提交镜像
  9. 总结

一.介绍docker历史

Docker的历史介绍,在2010年的时候,docker 就诞生了,当时,也就是几个搞IT的年轻人,在美国开了家公司,一开始并不叫docker,而叫dotcloud,那是公司也是搞pass云计算,之前,docker 并没什么影响,最后想出来开源,越来越多的人发现了它的用处,非常好用,在2014年4月9,Docker1.0发布。现在已经称为每一个开发必须需要掌握的技能。
在这里插入图片描述
vm虚拟机与docker容器技术
vm虚拟机,软件大,笨重,开启centos原生镜像,类似一个电脑,虚拟机虚拟化技术docker,容器技术,也是虚拟化技术,docker镜像,只需要最核心的部分,不需要的全部省去,大大的节省了内存占用

二.docker主要能做什么?

使用容器化技术,开发将环境和app打包成一个包,生成镜像,隔离成多个容器,对多个应用进行隔离,十分的安全,而相对比传统的虚拟机,虚拟出一个硬件,来完整的操作系统,需要安装使用容器,也就是我们的docker,应用在宿主机中,非常轻便,彼此互相隔离,起到一个保护的作用,容器与容器之间互不影响。参照之前的DevOps(开发,运维),可以更快速的交付和部署,直接使用docker打包镜像,一键运行即可。还可以实现便捷的升级和扩缩容,部署应用,类似搭积木,一层一层的,将项目打包成镜像(一个应用+环境),易于扩展。实现更高效的资源利用。

三.docker 的基本操作

全部都是在linux 下进行操作
1.首先需要卸载旧版本

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

2.下载仓库

yum install -y yum-utils

3.设置镜像仓库

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

4.安装docker

yum install docker-ce docker-ce-cli containerd.io

5.启动docker

systemctl start docker

6.查看安装成功

docker version

7.查看已经下载的镜像

docker images

8.卸载docker

yum remove docker-ce docker-ce-cli containerd.io

9.删除资源路径

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

四.Docker的底层原理

docker是怎么工作的?docker也是c/s架构,docker守护进程,都是通过socket 从客户端进行访问,DockerServer 接收到DockerClient的请求指令,执行命令,客户端通过Linux,访问守护进程,再去找对应的Docker(容器)
Docker的帮助文档

Docker 为什么比VM快
1.有着比虚拟机更少的抽象层
2.docker 利用的是宿主机的内核,vm需要Guest os,新建一个容器,docker不需要向虚拟机重新加载一个操作系统内核,避免引导。减少大量的时间,所以说docker 是秒级,而vm需要几分钟才能运行起来。

五.镜像命令

常用镜像命令:
查询所有的已下载的镜像:docker images
在这里插入图片描述
docker search 镜像名
在这里插入图片描述

docker pull 镜像名,远程下载镜像
在这里插入图片描述

使用docker images 查找到镜像id
docker rmi -f 镜像id
删除多个镜像 docker rmi -f 镜像id 镜像id

六.容器命令

新建容器并且使用,启动容器
docker run [可行参数] images
#参数说明

内部参数详细介绍
–name=“Name”容器名字,自定义
-d后台方式运行
-it使用交互方式运行
-P随机映射端口号
-p指定端口号

进入容器:-it 以交互式进入,默认方式: /bin/bash
docker run -it centos /bin/bash
在这里插入图片描述

#查看当前正在运行的容器
docker ps
在这里插入图片描述

退出容器
exit:退出即关闭容器
ctrl+p+q:退出但后台运行,如果需要再进入容器,可以使用docker attach 容器id,进入

删除容器
docker rm 容器id
使用变量的方式,可以删除符合条件的所有容器$()
docker rm -f $(docker ps -aq)
在这里插入图片描述

删除后进行查看
在这里插入图片描述

启用,停止容器,简单命令,大家自行熟悉即可
docker start 容器id
docker stop 容器id
docker restart 容器id :重启容器
docker kill 容器id 强制停止

查看日志 --tail n 显示最后日志的条数n
docker logs -t -f --tail n 容器id

查看当前正在运行的容器
docker top 容器id
在这里插入图片描述
查看容器的源数据
docker inspect 容器id
在这里插入图片描述
进入容器
#开启一个新终端 以交互式进行
docker exec -it 容器id /bin/bash
#打开正在执行的终端
docker attach 容器id

七.可视化管理镜像

portainer图形化管理工具
使用命令

docker run -d -p 8100:9000  \
--restart always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

在公网中访问:
http:ip地址:8100,访问
在这里插入图片描述自己设置密码,点击登录
在这里插入图片描述
最后展示效果
在这里插入图片描述

八.如何提交一个自己的镜像

回过头说,镜像是什么,相信很多人已经有了一定的认识。镜像,可以把它看做一个轻量级的应用,独立的软件包,将所有的配置文件,运行环境,库,全部打包成一个镜像,直接可以跑起来,那我们又会想一个问题,如何打包镜像呢?下面具体来说说
我们拿tomcat 来进行举例,当我们pull一个tomcat的时候,其实里面是分为一层一层的,我们想新增一个容器,所有的操作在容器中进行,如果想发布,需要将已经更改好的容器重新打包,使用到的命令commit,docker commit

docker commit -a  "tomcat" -m "mytomcat01" 容器id  tomcat02:1.0

尝试运行刚刚提交的镜像

docker run -d --name tomcat01 -p 3345:8080(tomcat的默认地址) tomcat02:1.0

九.总结

docker 基本上每一个开发必会的技能了,抓紧学习,避免被淘汰,容器的作用有目共睹,将镜像分装成一层一层的,如果执行有下载,直接跳过,大大的节省了内存,存放在容器,安全,便捷,但有个问题,比如,将mysql的数据放入docker容器中,如果容器一旦被删除,里面的数据是不是也会被丢失,也就是我们所说的删库跑路了,那如何避免这个问题呢?那就需要进行更深层次的探讨了,运用到了我们的数据卷技术了,当然,docker这只是入门,更复杂的还在后面了,比如,数据卷,dockerfile,docker 网络,只要用心学,相信大家都能学会。

第一次写自己的博客,大家一起学习进步,day day up,有错误,希望大家指出,一定虚心接受,改正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白up录

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值