1.Docker简介

1.1 什么是虚拟化

一种资源管理技术,实际用处一般用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用

虚拟化技术的种类:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(虚拟化ip)、桌面虚拟化、服务虚拟化、虚拟机等

1.2 什么是Docker

Docker最初是dotCloud公司内部的一个业余项目,Go语言实现。现开源,遵从Apache2.0协议,项目代码在GitHub上维护

Docker项目的目标是实现轻量级的操作系统虚拟化解决方案,Docker的基础是Linux容器(LXC)等技术

Docker的优势

  1. 上手快
    只要将自己的程序"Docker化"一下,几分钟就可以完成。

    然后,就可以创建容器运行程序,1s中即可启动。Docker容器性能很高,同时同一台宿主机中可以运行更多容器,使资源充分利用

  2. 职责逻辑分类
    使用Docker,开发测试运维时程序部署的生产环境完全一致,开发测试一切正常,就是运维的问题。
  3. 快速高效的开发生命周期
    Docker就像一个盒子,里面可以装很多物件,如果需要可以将盒子直接拿走,而不是一件件取货物。
  4. 鼓励使用面向服务的架构
    Docker和微服务有着紧密的联系。Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型。应用程序或服务都表示为一系列内部互联的容器。

1.3 容器与虚拟机比较

容器是在操作系统层面上实现虚拟化,直接复制本地主机操作系统,而传统方式是硬件层面实现

1.4 Docker组件

1.4.1 Docker服务器与客户端

Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具DOcker以及一整套RESTfulAPI。可以在同一台宿主机上运行Docker守护进程和客户端也可以从本地Docker客户端连接到另一台宿主机上的远程Docker守护进程

1.4.2 Docker镜像与容器

用户基于镜像来运行自己的容器。镜像就是宿主机的一些文件,比如mysql镜像,centos镜像。接着可以使用mysql镜像,创建一个mysql容器(可以创建多个)。

也可以把镜像当做容器的"源代码"(好比类和对象的关系)。镜像体积很小,易于分享、存储和更新。

1.4.3 Registry(注册中心)

Docker用Regitsry来保存用户构建的镜像。Registry分为公有和私有两种。公有的叫做Docker Hub,由Docker公司运营。用户可以注册账号,保存并分析自己的镜像,但是慢,可以自己构建私有Registry。

https://hub.docker.com/


2.Docker安装与启动

Docker安装与启动


3.Docker常用命令

3.1 镜像相关命令

  1. 查看镜像 docker images
  2. 搜索镜像 docker search
  3. 拉取镜像 docker pull 镜像名称
  4. 删除镜像 docker rmi 镜像ID
  5. 删除所有镜像
    docker rmi `docker images -q`
    

3.2 容器相关命令

  1. 查看容器

    1. 查看正在运行容器 docker ps
    2. 查看所有容器 docker ps -a
    3. 查看最后一次运行容器 docker ps -l
    4. 查看停止的容器 docker ps -f status=exited
  2. 创建与启动容器
    1. 交互方式创建容器 docker run -it --name=容器名称 镜像名称:标签 /bin/bash   退出exit
    2. 守护方式创建容器 docker run -di --name=容器名称 镜像名称:标签
    3. 登录守护容器方式 docker exec -it 容器名称 (或者容器ID) /bin/bash
    4. -i表示运行容器、-t表示容器启动后进入命令,it就表示容器创建就能登录进去。即分配一个伪终端、--name表示为创建的容器命名、-v表示目录映射关系、-d表示在run后面加上-d参数,则会创建一个守护式容器在后台运行(创建后不想进入)、-p表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
  3. 停止与启动容器
    1. 停止容器 docker stop 容器名称(或ID)
    2. 启动容器 docker start 容器名称(或ID)
  4. 文件拷贝
    1. 拷贝到容器内 docker cp 需要拷贝的文件或目录 容器名称:容器目录
    2. 从容器内拷贝出来 docker cp 容器名称:容器目录 需要拷贝的文件或目录
  5. 目录挂载
    1. docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
    2. 创建容器 添加-v参数 后边为 宿主机目录:容器目录
    3. 多级目录权限不足,添加 参数--privileged=true解决
  6. 查看容器ip地址
    1. 容器相关所有数据docker inspect 容器名称(容器ID)
    2. 直接看ipdocker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
  7. 删除容器 docker rm 容器名称(容器ID)

4. Docker应用部署

4.1 MySQL部署

  1. 拉取mysql镜像 docker pull centos/mysql-57-centos7
  2. 创建容器 docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  3. 远程登录mysql:Navicat连接宿主机,端口33306

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码

4.2 Tomcat部署

  1. 拉取镜像 docker pull tomcat:7-jre7
  2. 创建容器 docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

-p表示地址映射

4.3 Nginx部署

  1. 拉取镜像 docker pull nginx
  2. 创建Nginx容器 docker run -di --name=mynginx -p 80:80 nginx

4.4 Redis部署

  1. 拉取镜像 docker pull redis
  2. 创建容器 docker run -di --name=myredis -p 6379:6379 redis

5. 迁移与备份

5.1 容器保存为镜像

mynginx为容器名称,mynginx_i为镜像名称。

docker commit mynginx mynginx_i

5.2 镜像备份

可以将镜像保存为tar 文件,然后就可以传给别人了

docker  save -o mynginx.tar mynginx_i

5.3 镜像恢复与迁移

删除掉mynginx_img镜像后 执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件


6. Dockerfile

DockerFile以及使用脚本创建镜像


7. Docker私有仓库

Docker私有仓库搭建与镜像上传

Docker安装与部署MySQL等,迁移备份与Dockerfile和私有仓库相关推荐

  1. Docker安装及部署

    Docker安装及部署 一.Docker安装 二.安装Centos容器并安装Jdk 三.Docker安装部署Redis 四.Docker部署Nginx 五.Docker安装Mysql 持续记录.... ...

  2. 腾讯云轻量应用服务器CentOS系统使用docker安装tomcat,MySQL 并发布SSM maven项目

    腾讯云轻量应用服务器CentOS系统使用docker安装tomcat,MySQL 并发布SSM maven项目(记录) 一.服务器修改密码(此时已安装CentOS系统) 二.防火墙添加规则 三.连接X ...

  3. Docker安装并使用Mysql(可用详细)

    Docker安装并使用Mysql 一.Docker安装Mysql 1.启动Docker 2.查询mysql 3.安装mysql 1.默认拉取最新版本mysql 2.拉取指定版本mysql_5.7 4. ...

  4. Docker 安装和部署

    Docker 安装和部署 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...

  5. kubernetes+docker安装及部署服务

    kubernetes+docker安装及部署服务 参考文章: kubernetes详细介绍 kubernetes官网 1.安装docker(安装过的跳过此步骤) https://blog.csdn.n ...

  6. Openstack技术\在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server

    MySQL部署 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server. 操作步骤: 搜索mysql镜像 拉取mysql镜像 创建容器 操作容器中的mysql 容器 ...

  7. docker安装+配置镜像+命令操作+数据卷+网络管理+DockerFile+镜像服务+项目部署+[高级使用]

    文章目录 Docker基础 一.Docker介绍 1. 什么是虚拟化 2. 什么是Docker 3. 容器与虚拟机比较 4. Docker优势 5. Docker架构 [1]镜像服务(`Image`) ...

  8. Docker安装和部署

    Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境. Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 ...

  9. Docker安装Tomcat、MySQL和Redis

    总体步骤 Docker安装Tomcat docker hub上查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull ...

最新文章

  1. Linux系统性能分析:内存 优化
  2. 【linux】error: stdio.h: No such file or directory
  3. check_ping.py
  4. Zookeeper-Zookeeper leader选举
  5. mysql normsinv_在MySQL中实现NORMSINV函数
  6. python在物联网中的应用_在物联网中应用机器学习
  7. linux判断是否能上网_如何判断飘窗是否能砸掉?砸掉飘窗可以怎么利用?
  8. 冒泡排序,插入排序--- PYTHON
  9. 数字化转型、智能制造、工业软件及其应用案例资源列表
  10. 服务器整体爆率如何修改,传奇服务端gom引擎提升爆率脚本
  11. FC1179U盘量产教程
  12. 工厂食堂3D指纹考勤系统解决方案
  13. cisco配置和ios备份
  14. CCF A类会议或期刊----多视图聚类近两年论文
  15. 5G-SUPI-SUPC-IMSI
  16. 切片 (python)
  17. 2021英伟达暑期实习面经(芯片设计)
  18. 运用计算机辅助设计的药物实例,计算机辅助设计在药物研发中的应用现状探究...
  19. FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK-殷汶杰-专题视频课程
  20. How to use HM software(H.265)

热门文章

  1. 阿里云天池龙珠计划SQL训练营——Day2
  2. 一个linux上最多能生成多少个socket
  3. 【Mac】屏幕放大缩小进行==演示效果拉满
  4. 仿掌阅实现 TabLayout 切换时的字体和 Indicator 动画
  5. python set() 用法
  6. 不用插件在chrome上下载网页视频
  7. 斗兽棋概要设计说明书
  8. 直观解释-小波变换(一)
  9. codeup27967 格子问题(NOIP1996普及组第2题)
  10. 书单推荐|不惧复工,工作轻松