Docker从入门到实践

Docker从入门到实践
一、Docker简介与安装
Docker是基于Linux内核的controlgroup、namespace以及Union FileSystem技术,用go语言开发的,类似于传统的虚拟化,但是在性能上是优于虚拟机的,可以参考以下两幅图
在这里插入图片描述
【传统虚拟化】
在这里插入图片描述
【Docker】
简单讲,传统虚拟化是通过虚拟化技术在物理机上模拟出多个和原先宿主机一样的虚拟机;而Docker是在宿主机上创建出docker 容器,这个容器只是一个进程,与传统虚拟机最显著的差别就是传统虚拟机需要独自模拟出操作系统,但是docker容器不需要,所以docker容器在启动速度上就占优势,而且也消耗比较少的资源,同等的物理资源上,可以创建出更多的docekr容器,就可以跑更多的业务

Docker既然和传统虚拟化类似,那么Docker也有自己的镜像,除此之外还有仓库、容器概念
a、镜像:可以放到docker容器里边跑的,把需要的业务代码打成镜像后,就可以放到容器上面运行
b、容器:镜像与容器的关系就类似面向对象的类和对象的关系,虚拟机的镜像是在虚拟机里边跑的,而docker加载镜像后,就成为一个容器,就是一个进程
c、仓库:就是存放镜像的地方

Docker网络模式
Docker容器是隔离性的,所以,当开发在docker容器里边运行打包好的镜像,是需要对外提供网络服务,外网才可以访问到容器服务,此时就需要配置docker的网络,docker网络模式主要有host模式、container模式、bridge模式、none模式
host模式:该模式下,docker容器没有自己的network namespace,而是和宿主机共用一个network namespace,容器将不会虚拟出自己的网卡,也不会配置自己的ip等,而是使用宿主机的ip和端口
在这里插入图片描述
container模式:该模式指定新创建的容器和已经存在的一个容器共享一个network namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,ip,而是和一个指定的容器共享ip和端口范围。两个容器除了网络方面,其他如文件系统,进程列表还是相互隔离的
在这里插入图片描述
bridge模式:该模式是docker默认的网络设置,此模式会给每个容器分配一个network namespace,并设置ip,并将主机上的docker容器连接到虚拟网桥docker0上。网络拓扑图如下
在这里插入图片描述

Docker安装指南:https://docs.docker.com/install/,官方文档有写如何安装

安装注意事项:
1、要按照安装指导要求的,操作系统版本和内核版本都要达到要求,要不然安装完后会功能不完善

二、Docker使用
1、镜像制作
制作镜像一般是使用dockerfile来制作,就是使用dockerfile的一些命令(FROM/RUN等),来把当前业务代码需要执行的环境给搭建好,从而制作成一个镜像,就能直接放到docker上面跑,具体用到比较多的命令如下:
a、FROM:制作镜像肯定要有一个基础镜像,FROM就表示制定从哪个镜像开始,必须写在非注释的dockefile的第一行
b、RUN:是指要执行哪些命令,比如在全新的操作系统上,需要给安装apache或者其他服务器,就需要在dockerfile里写RUN,然后后面加要执行的命令,命令的多个参数需要换行可以用”\”连接,多个命令执行可以用&&连接
c、COPY:是拷贝,从哪个目录拷贝文件到目标目录
d、EXPOSE:对外暴露出端口
e、WORKDIR:当前要跑的服务的目录

2、写完dockerfile后,就用docker build命令来制作成镜像
docker build -t name .
其中name就是你要制作成的镜像的名字,后面的”.”是指当前上下文,在当前目录找dockerfile

制作完成后,可以用docker image ls去查看制作好的镜像

3、制作完后,用docker run命令来加载镜像
docker run -it –-name name1 -p 8080:80 name2
name1 是指你要把这个镜像加载成的容器的名字 name2 是制作好的镜像名字
8080:80 是指把80端口转发到8080,那么外面就可以直接用8080端口去访问docker服务

docker ps 可以查看已经启动的容器
docker ps -a查看所有容器,包括已经启动和停止的容器
docker rm可以删除容器
docker image rm可以删除镜像(需要先删除镜像所在的容器,然后再删除镜像)
docker logs +容器id 查看日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值