Docker

概念:docker就是一个开源的容器引擎

           可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的LInux机器上

           容器是完全使用沙箱机制,呼吸隔离

安装:

配置docker镜像加速器docker hub

阿里云每个人都有免费的镜像加速器

启动docker:systemctl start docker

查看docker状态:systemctl status docker

停掉docker:stop docker

开机启动docker:systemctl enable docker

 查看镜像命令:docker images

搜索镜像命令:docker search redis:5.0(版本和名称用:隔开)

拉取镜像命令(下载redis):docker pull redis(可以看官方镜像docker hub里面支持redis的版本)

官方连接:Docker

删除镜像命令:docker rmi (image id)镜像id

查看所有镜像:docker images -q

删除所有镜像:docker rmi docker images -q

 创建容器命令(创建完运行并进入容器内部):docker run -it --name=c1 centos:7 /bin/bash

(i表示一直运行,t表示分配终端接受命令;--name=c1也可以--name c1,name后面是名称;centos:7:镜像名称:镜像版本)

创建容器命令(创建完运行 不进入容器内部):docker run -id --name=c2 centos:7

(-id:d表示创建完不进入容器;/bin/bash不需要进入就不加)

退出容器(容器就不运行):exit

查看正在运行的容器:docker ps

查看历史运行的容器:docker ps -a

进入容器命令:docker exec -it c2 /bin/bash

关闭容器:docker stop c2(容器名称)

删除容器:docker rm c1(容器名称/容器id)

查看所有容器id:docker ps -aq(q:表示可以查看所有容器id)

删除所有容器:docker rm docker ps -aq(不能删除正在运行的容器)

查看容器信息:docker inspect c2(容器名称)

docker容器的数据卷

目录映射

数据卷概念:数据卷是宿主机中的一个目录或文件

                      当容器目录和数据卷目录绑定后,对方的修改回立即同步

                      一个数据卷可以被多个容器同时挂载

                      一个容器也可以被挂载多个数据卷

容器和数据卷通过挂载进行同步目录(目录名称可以不一样,就可以理解为备份)

数据卷作用:容器数据持久化

                      外部机器和容器间接通信

                      容器之间数据交换

  配置数据卷

创建启动容器时设置数据卷:docker run -it —name=c1 -v ~/data:/root/datatime condos:7 /bin/basn

(宿主机目录可以用~代表/root,但是容器目录不可以;/bin/bsh可以不写;没有改目录会自动创建)

 数据卷容器

多容器进行数据交换

1.多个容器挂载同一个数据卷

2.数据卷容器

 docker应用部署

mysql部署

1.搜索mysql镜像

2.拉取mysql镜像

3.创建容器

4.操作容器中的mysql

容器内的网络服务和外部机器不能直接通信

外部机器和宿主机可以之间通信

宿主机和容器可以之间通信

容器和外部机器通信方式:端口映射

Tomcat部署

 Nginx部署

 

Dockerfile-镜像原理

镜像制作

1.容器转为镜像

docker commit 容器id 镜像名称:版本号

压缩文件:docker save -o 压缩文件名称 镜像名称:版本号

解压文件:docker load -i 压缩文件名称

2.dockerfile 

概念:Dockerfile是一个文本文件;包含了一条条的指令;

每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像;

对于开发人员:可以为开发团队提供一个完全一致的开发环境;

对于测试人员:可以直接拿开发时所构建的镜像或者通过dockerfile文件构建一个新的镜像开始工作了;

对应运维人员:在部署时,可以实现应用部署

 

dockerfile关键字

Dockerfile关键字大全_野玩家的博客-CSDN博客

FROM:指定父镜像:指定dockerfile基于那个image构建

MAINTAINER:作者信息:用来标明这个dockerfile谁写的

LABEL:标签:用来标明dockerfile的标签,可以使用Label代替Maintainer最终都是在docker image基本信息中可以查看

RUN:执行命令:执行一段命令,默认是/bin/sh 格式:RUN command 或者RUN [“command”,”param1”,”param2”]

CMD:容器启动命令:提供启动容器时候的默认命令和ENTRYPOINT配合使用格式CMD command param1 param2 或者 [“command”,”param1”,”param2”]

ENTRYPOINT:入口:一般在制作一些执行就关闭的容器中会使用

COPY:复制文件:build的时候复制文件到image中

ADD:添加文件:build的时候添加文件到image中,不仅仅局限于当前build上下文可以来源于远程服务

ENV:环境变量:指定build时候的环境变量,可以在启动的容器的时候通过-e覆盖格式ENVname=value

ARG:构建参数:构建参数只在构建的时候使用的参数如果ENV那么ENV的相同名字的值始终覆盖的arg参数

服务编排dockerCompose

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大

概念:是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务工具,启动和停止。使用步骤:

1.利用dockerile定义运行环境镜像

2.使用docker-compose.yml定义组成应用的各服务

3.运行docker-cpmpose up启动应用

docker私有仓库

私有仓库构建

1.拉取私有仓库镜像

docker pull registry

2.启动私有仓库容器

docker run -id —name=registry -p 5000:5000 registry

3.打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{“repositories”:[]}表示私有仓库搭建成功

4.修改daemon.json

vim  /etc/docker/daemon.json

(在上述文件中添加一个key,保存退出。此步用于让docker信任私有仓库地址;注意将私有仓库服务ip修改为自己私有仓库服务器真实ip)

{“insecure-registries”:[“私有仓库服务器ip:5000”]}

5.重启docker服务

systemctl restart docker

docker start registry

Docker容器虚拟化与传统的虚拟机区别

相同:容器和虚拟机具有相似的资源隔离和分配优势

不同:容器虚拟化是操作系统,虚拟机虚拟化的是硬件

           传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

容器启动是秒级,虚拟机启动是分钟级;

容器硬盘使用一般为MB,虚拟机硬盘使用一般为GB;

容器性能接近原生,虚拟机性能弱于原生;

容器系统支持量单机支持上千个容器,虚拟机系统支持量一般几十个

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值