docker入门学习

前言

为了搭建Vulhub漏洞靶场环境,首先就要用到docker,便于快速搭建,因此今天来学习一下docker。

注:本文所记内容仅用于个人学习,严禁利用文中技术进行任何非法行为,所造成一切严重后果自负!

一、简介

1.docker是什么

  • Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

  • 通俗来说,Docker 就像是一个“容器工厂”,它能帮你把应用程序和它们需要的一切(比如运行的环境和依赖的库)打包在一个“容器”里。Docker让你的软件“打包自带”环境和依赖,免受外环境差异的影响,使其无论放到哪儿都能顺利运行。

2.docker特点及应用

1)简化配置

  • Docker在降低额外开销的情况下提供了与虚拟机同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。

  • 简单的来说,容器镜像打包完成后,它就是个独立的个体了,放到任何平台都能运行,而无需针对各个平台去独立配置。

2)隔离应用

  • 很多情况下,我们需要在一台服务器上运行多个不同的应用,这就必须要考虑各个应用之间的兼容性问题。
  • 针对上述问题,同一台机器上,可以同时运行多个个Docker web应用,托管到不同的Web服务器(Ngnix、Tomcat),应用相互隔离,不用担心冲突问题。

3)提高开发、运维效率

  • 可以快速搭建开发环境,一台一般配置服务器或开发机也能轻松的跑起多个Docker应用,而无需额外增加机器配置。
  • 可以用docker把开发环境直接封装,其他人部署对应docker就可以了。

4)快速部署

  • Docker 容器是在操作系统层面上实现虚化,直接复用本地主机的操作系统,因此更加轻量化
  • 通过使用Docker并进行有效的资源分配可以提高资源的利用率。

3.docker与虚拟机的区别

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
特性容器虚拟机
启动速度秒级分钟级
性能接近原生弱于原生
隔离性安全隔离安全隔离
硬盘占用一般为MB一般为GB

4.docker相关概念理解

1)image镜像

  • 类似于虚拟机镜像 里面可以使已经封装好的服务、应用,直接获取镜像使用即可

2)container容器

  • docker容器就是独立运行的一个或一组应用,以及它们所运行的必需环境。

  • 类似linux系统环境,运行和隔离应用。容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变。

3)repository仓库

  • 仓库是集中存放镜像的地方。每个服务器上可以有多个仓库。
  • 仓库又分为公有仓库(DockerHub、dockerpool)和私有仓库

5.docker网络

Docker的网络模式主要有以下几种:

模式解释
bridge为每一个容器分配、设置 IP 等,并将容器连接到一个 docker0 虚拟网桥,默认为该模式。
host容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。
container新创建的容器不会创建自己的网卡和配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。
none容器有独立的 Network namespace,但并没有对其进行任何网络设置

二、docker安装

1.安装

1)安装docker

apt-get install docker.io

2)启动docker

systemctl start docker

3)设置开机自启动

/lib/systemd/systemd-sysv-install enable docker

4)查看版本

docker version

查看版本

5)查看服务状态

systemctl status docker.service

查看服务状态

2.配置镜像

vi /etc/docker/daemon.json

编辑配置文件,加入

{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

后面测试,发现失败,换了以下镜像

 {
  "registry-mirrors": [
          "https://ox288s4f.mirror.aliyuncs.com",
          "https://registry.docker-cn.com",
          "http://hub-mirror.c.163.com",
          "https://mirror.ccs.tencentyun.com"
  ]
}

三、docker命令

1.服务相关命令

docker version          # 查看docker版本详细信息
docker info             # 查看docker详细信息
docker -v               # 查看docker简要信息
systemctl start docker  # 启动docker
systemctl stop docker   # 关闭docker
systemctl enable docker # 设置开机启动
service docker restart  # 重启docker服务
service docker stop     # 关闭docker服务

2.容器相关命令

docker run           #创建并启动容器
docker start         #启动容器
docker ps            #查看正在运行的容器
docker ps -a         #列出所有容器
docker stop          #终止容器
docker restart       #重启容器
docker attach        #进入容器
docker exec          #进入容器
docker export        #导出容器
docker import        #导入容器快照
docker rm            #删除容器
docker logs          #查看日志
docker exec -it name /bin/bash    #进入name(容器名/id)中开启交互式的终端,exit退出
docker cp 容器id:容器文件的地址  本地地址 #docker cp id:/1.txt /root 

3.镜像相关命令

docker search redis          #从docker hub上检索redis镜像
docke pull  redis            #从docker hub获取redis镜像
docker images                #查看镜像列表
docker images -a             #列出本地所有镜像
docker rmi  xxxx             #删除id为xxxx的镜像
docker image rm              #删除镜像
docker save                  #导出镜像
docker load                  #导入镜像
Dockerfile                   #定制镜像(三个)
{   docker build             	#构建镜像
    docker run              	#运行镜像
    Dockerfile               	#常用指令(四个)
    {   COPY                 		#复制文件
        ADD                  		#高级复制
        CMD                  		#容器启动命令
        ENV                  		#环境变量
        EXPOSE               		#暴露端口
    }
}

示例:

  • docker run -d -p 6379:6379 --name myredis redis:latest 
    
  • -d 后台运行

  • -p 端口映射 主机端口:容器端口

  • –name 自定义的容器名

四、搭建服务测试

拉取tomcat镜像,并搭建运行tomcat,进行测试。

1.搜索tomcat镜像

docker search tomcat

搜索镜像

2.pull tomcat

docker pull tomcat #选择了第一个

拉取镜像

3.查看镜像

发现已经有了tomcat镜像了

查看镜像

4.运行tomcat

docker run -d -p 8080:8080 --name tomcatTest tomcat

5.访问

访问结果

上述页面,说明tomcat已经启动起来了,出现404只是里面没有网页。

所以,进入tomcat容器的交互式终端里,查看一下

docker exec -it tomcatTest /bin/bash

终端
webapps下文件为空,所以访问404!创建一个hello/hello.html的网页,并尝试访问。
访问
搭建成功!

五、总结

本文仅用于个人学习记录,发现docker很好用,爱了爱了。

参考

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值