2019.7.17docker

背景

我们知道不同的应用程序可能会有不同的应用环境,不同环境如果在同一个服务器上可能会产生冲突;如何隔离他们不同的环境呢?常规方式是安装不同的虚拟机,然后将不同应用安装到不同的虚拟机,但虚拟机开销很大,而docker就可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。docker可以将环境直接封装(Docker把App和Lib的文件打包成为一个镜像,这样有一定的隔离,不会冲突的作用,而且共用初始资源而不会太浪费硬件资源,不用每个都单独分配

2.集群和分布式的分析

集群:同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事);
分布式:一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的);

Docker

(1)Docker是一个开源的应用容器引擎;是一个轻量级容器技术。即docker是一个应用,该应用具有能打包其他应用成镜像和获取其他应用镜像,并运行这个镜像成容器的一个技术。 当然这些都是由docker相关命令来完成的
(2)简单理解:就是一个将应用和和其依赖包打包成镜像的技术。这个镜像一运行或者启动就成了一个独立的容器。这时候容器就是一个独立的应用。
(3)docker有一些概念:docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker仓库(Registry):用来保存各种打包好的软件镜像;docker镜像(Images):应用连同其依赖打包成的镜像;一般那些镜像放在docker仓库中;docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。

安装Docker

基于linux系统的,linux是用的centos:CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。然后在linux操作系统中安装Docker

  • 首先安装linux系统,linux系统不直接安装到物理机上,而是安装到虚拟机(VMware、virtualBox轻量级)上。
  • 在虚拟机中导入linux系统文件(centos【Community Enterprise Operating System,中文意思是社区企业操作系统】)。然后linux系统就安装好了,就可以使用linux系统注意centos是linux系统的企业级稳定的发行版本,它里面安装了yum(它是一种基于RPM包管理的软件包管理器),所以centos的linux系统中经常会用yum命令来安装或者操作软件。
  • 如:yum update 是更新这个centos系统;yum install docker 是安装docker软件;yum install mysql 安装mysql
  • (1)重启linux系统网络的命令: service network restart(2)查看linux的ip地址:ip addr (3)查看系统内核版本:uname -r (4)查看linux系统的防火墙:service firewall status。(4)uname ‐r 检查内核版本
  • 安装Docker应用很简单,直接一个命令:yum install docker 就欧了。
  • 安装好docker应用后,一些命令systemctl enable docker:表示开机启动 docker。systemctl stop docker:表示关闭dockersystemctl start docker 启动dockersystemctl status docker.service查看这个docker的服务状态。

上面安装失败终极大招:

低版本的
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

另一种方式
(1)curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
另一种
(2)curl -sSL https://get.daocloud.io/docker | sh

然后如果显示错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决方式:   顺序执行下面两条然后就OK了。
 systemctl daemon-reload 
 systemctl restart docker


Docker的操作

上面安装好了docker环境,下面开始通过docker来完成相关的操作

  1. 镜像操作:通过docker来对镜像的相关操作:检索、拉取、删除等。如(1)检索mysql镜像(docker search mysql,是到docker的仓库去搜索指定应用的镜像。
  2. docker的操作镜像是到仓库(docker.hub)去找的,所有找到了镜像,还有拉取下来;由docker pull mysql(:tag[可选的])。但是传统默认仓库拉取很慢很慢,所以可以设置自己docker的配置。【先进入cd ect/docker/目录下,然后进入daemon.json文件中,设置该文件中内容json形式:“registry-mirrors”: “https://qrletu9d.mirror.aliyuncs.com” 这个是我自己的阿里云镜像加速的配置】。详细介绍见此docker下载镜像卡死或太慢的解决方式
    在这里插入图片描述
  3. 将镜像下载到本地后,可以通过docker images 来查看所有本地镜像
    在这里插入图片描述
  4. 删除本地不需要的镜像,docker rmi (镜像的id) 就可以删除本地下载的那些不需要的镜像了
  5. 注意!!!上面是镜像的操作, 下面是对容器的操作了。
  6. 开始运行pull下来的镜像。即启动镜像来生成容器。docker run ‐‐name mytomcat(contain-name) ‐d tomcat:latest(image-name)-p xxx(虚拟机的端口):xxx(容器的端口); 前面是自定义的容器名称,-d表示后台运行,后面是镜像名和版本标签,-p作用是将虚拟机的端口映射到容器应用的端口
  7. docker ps 查看运行中的容器
    在这里插入图片描述
  8. 停止运行中的容器 docker stop 容器的id
    在这里插入图片描述
  9. 查看所有的容器 docker ps ‐a。区别于上面运行中的容器奥!
  10. docker run -d -p 8081:8080 tomcat(启动一个做了端口映射的tomcat [root@localhost ~]# docker run ‐d ‐p 8888:8080 tomcat
  11. 启动镜像成为容器,而且映射虚拟机上操作系统的端口号和容器的属性端口号关联的方式的通用命令:
docker run -p 8888:8080 --name suntomcat -d tomcat

在这里插入图片描述

  1. service firewalld status 查看linux的防火墙状态 。 service firewalld stop:关闭防火墙
  2. 容器的操作中总是要关注容器的id
    在这里插入图片描述
    docker镜像保存在 /var/lib/docker/ 目录下
docker运行mysql 镜像

(1)首先下载mysql:docker pull mysql
(2)查看docker中镜像列表: docker images
(3)查看docker中所有运行的容器:docker ps
(4)运行mysql的镜像,使其成为一个生效的mysql容器:

docker run -p 3306:3306(端口映射) --name docker_mysql(自定义容器名) -e MYSQL_ROOT_PASSWORD=123456(要明确mysql容器密码) -d mysql(指定要启动和运行的哪个镜像)

例如:
docker run -p 3306:3306 --name docker_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

-p  xxx(虚拟机的端口):xxx(容器的端口)
-p作用是将虚拟机的端口映射到容器应用的端口

(5)然后就可以数据库客户端连接,然后访问这个数据库容器了。

补充:

在docker中运行的容器,如何在里面进入这个mysql容器呢?

  • 进入mysql容器
    docker exec -it 自定义容器名 /bin/bash
  • 进入mysql
    mysql -u root -p

    在这里插入图片描述

修改docker中容器的配置

首先停止容器,不然无法修改配置文件,配置文件路径为:/var/lib/docker/containers/容器ID,在该目录下找到一个文件 hostconfig.json 。好像这个就是该容器对应的配置文件修改容器一些属性

docker安装zookeeper简介zookeeper端口说明

分析linux简单命令操作

创建文件和文件夹:mkdir、touch
删除文件和文件夹:rmdir、rm
编辑文件和查看文件:vi、cat
创建文件——touch 文件名
查看文件内容——cat(或者more命令) 文件名
编辑文件内容——touch 文件名

docker的常见操作

五.小结——docker操作容器(进入容器——应用目录)

(1)Docker是一个开源的应用容器引擎;是一个轻量级容器技术。即docker是一个应用,该应用具有能打包其他应用成镜像获取其他应用镜像并运行这个镜像成容器的一个技术。 当然这些都是由docker相关命令来完成的
(2)简单理解:就是一个将应用和和其依赖包打包成镜像的技术。这个镜像一运行或者启动就成了一个独立的容器。这时候容器就是一个独立的应用。
一般docker下载镜像后,并运行镜像成容器,就类似于下载一个传统app应用,并运行这个应用一样。那么如何查找这个镜像的一些文件目录信息呢?

对应单个镜像的操作

首先要查找到应用的相关目录:
在docker容器引擎中,要先运行启动容器,然后才能查看该容器的相关信息。

上面要先用docker启动镜像奥!!
进入容器:  以前没有图形界面的时候,操作应用都是同dos命令号来操作应用的。这边就类似这样在dash命令行中操作
sudo docker exec -it ce1ca3255bf9 /bin/bash  (ce1ca3255bf9 为容器的id)

容器的常用命令操作(端口映射的分析比较不错)

使用命令:docker run --name container-name:tag -d -p 服务器端口:Docker 端口 image-name
--name:自定义容器名,不指定时,docker 会自动生成一个名称
-d:表示后台运行容器
image-name:指定运行的镜像名称以及 Tag 
-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问

docker的常用基本的操作命令

在这里插入图片描述
docker search mysql 从docker云端查找有关mysql软件信息
docker pull mysql:3.5.3 拉取和下载指定应用(镜像/mysql软件)

docker run --name 自定义这个容器昵称 -d 想要运行的容器名/id值(:版本号)
上面将镜像启动就变成容器了
docker ps 查看正在运行的容器 —————— docker ps -a 查看所有运行或者没有运行的容器
在这里插入图片描述
docker stop 容器名/id 停止正在运行的容器
docker start 容器名/id 开启被停止的容器
docker rm 容器id 删除指定容器 。 rm 参数是删除容器,rmi 参数是删除镜像
在这里插入图片描述
在docker容器引擎中,查看运行的容器的相关信息。
docker运行启动一些容器后,进入这些容器中的命令方式

上面要先用docker启动镜像奥!!
进入容器:  以前没有图形界面的时候,操作应用都是同dos命令号来操作应用的。这边就类似这样在dash命令行中操作
(sudo) docker exec -it ce1ca3255bf9 /bin/bash  (ce1ca3255bf9 为要查看的容器的id)
就进入该容器内部了
ls
就可以看该应用的目录结构了

在这里插入图片描述

docker镜像保存在 /var/lib/docker/ 目录下

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值