Docker的介绍 安装与使用

1.Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

1.1 Docker的应用场景

  1. Web 应用的自动化打包和发布。

  2. 自动化测试和持续集成、发布。

  3. 在服务型环境中部署和调整数据库或其他的后台应用。

  4. 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

1.2 Docker 的优点

  • Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
  1. 快速,一致地交付您的应用程序
  • Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
    容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:

  • 开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

  1. 响应式部署和扩展
  • Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

  • Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

  1. 在同一硬件上运行更多工作负载
    Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
  • 对 开发人员 Build once run anywhere
  • 对 运维人员 Configure once ,run anything

1.3 传统虚拟化与容器技术对比

在这里插入图片描述

  • docker不依赖于底层

1.4 容器是怎么工作的

在这里插入图片描述

2. 安装

  • 配置YUM源
    vim /etc/yum.repos.d/docker-ce.repo
[docker]
name=docker ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0

yum install -y docker-ce安装

  • 发现error
    在这里插入图片描述

yum install -y container-selinux-2.77-1.el7.noarch.rpm安装依赖性

systemctl start docker开启docker
systemctl enable docker 开机自启docker

3. Docker的基础用法

3.1 Docker容器使用

docker info 查看信息
在这里插入图片描述

  • 出现warning,解决办法
  • cd /etc/sysctl.d/
  • vim docker.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1

sysctl --system使设置生效
在这里插入图片描述
docker pull XXX获取镜像XXX
在这里插入图片描述

docker run -it ubuntu /bin/bash启动容器

- i 交互式操作
- t 终端
- ubuntu ubuntu镜像
- /bin/bash 放在镜像后的是命令,希望有一个交互式的shell,所以用/bin/bash

在这里插入图片描述

  • 退出直接输入exit
ctrl+pq     不停止容器,后台运行
ctrl+d      直接结束容器,释放内存
  • 查看所有的容器docker ps -a
  • 在这里插入图片描述
    docker start 74e2759a0d05 启动一个已经停止的容器
    在这里插入图片描述
  • docker run -itd --name ubuntu-test ubuntu /bin/bash使容器在后台运行,通过-d 指定容器的运行模式,加了-d默认不会直接进入容器,想要进入容器需要使用docker exec
    在这里插入图片描述
    docker stop <ID>停止容器
    在这里插入图片描述
  • docker restart <ID> 重启容器
  • 进入容器,在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach

docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

在这里插入图片描述
在这里插入图片描述

  • 导入和导出容器
    docker export 1ee0557e151b > ubuntu.tar
    在这里插入图片描述
    导出了 1ee0557e151b 快照到到本地文件ubuntu.tar
    cat ubuntu.tar | docker import - test/ubuntu导入容器快照
    在这里插入图片描述
  • 删除容器docker rm -f 1ee0557e151b

在这里插入图片描述

 - docker load -i ubuntu.tar 导入镜像 
 -  docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板) 
 -  docker ps 查看容器状态 
 -  docker ps -a 查看容器状态(包括不活跃的容器) 
 -  docker attach vm1 连接容器 
 -  docker top vm1 查看容器进程 
 -  docker logs vm1 查看容器指令输出 -f 参数可以实时查看 
 -  docker inspect vm1 查看容器详情 
 -  docker stats vm1 查看容器资源使用率 
 -  docker diff vm1 查看容器修改 
 -  docker stop vm1 停止容器 
 -  docker start vm1 启动容器 
 -  docker kill vm1 强制干掉容器 
 -  docker restart vm1 重启容器 
 -  docker pause/unpause vm1 暂停/恢复容器 
 -  -  docker ps -a           查看所有的容器
 - docker ps 查看所有的正在运行的容器
 - docker images   查看已经导入的镜像
 -  docker pull nginx   从公有库下载nginx
 - docker run -d --name game -p 8080:80 game2048  运行指定的镜像 		
 			-d  后台运行      
 			-p 8800:80 是指定对外暴露的端口  容器内部用80 对应外部的8800  代理一样
    	--name指定容器的名字  最后的nginx 代码要运行的镜像名字  
    	有tag的加上tag 如 game2048:xxx     
    	默认为latest 然后访问宿主主机地址+8800端口
 - docker run -it --name demo1 ubuntu     		 
   			-i:交互 	
   			-t:终端
 - docker run -it --name  demo1 nginx bash  加一个bash可以调出shell
 - docker container exec -it demo1 bash   后台开启时调动shell的方法
 - docker export demo1 > demo1.tar  导出镜像
 - docker import demo1.tar image  导入镜像

3.2 运行一个小游戏

  • 在网络上下载一个2048的镜像
    在这里插入图片描述
    docker load -i game2048.tar导入镜像
    docker run -d --name game1 -p 80:80 game2048后台运行容器-p 80:80使做一个端口映射
    docker ps查看当前运行容器

在这里插入图片描述
在这里插入图片描述

  • 浏览器访问容器
    在这里插入图片描述

3.3 Docker镜像使用

docker images 列出镜像列表
在这里插入图片描述

REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID : 镜像ID
CREATED:镜像创建的时间
SIZE : 镜像大小

docker search httpd查找镜像
在这里插入图片描述

NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。

docker pull httpd 拖取镜像
docker rmi httpd删除镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值