Docker学习笔记

一、Docker介绍

1.1引言
1.本地运行没有问题呀。
    环境不一致问题
2.哪个哥们写死循环了,怎么这么卡。
    在多用户的操作系统下,会相互影响
3.淘宝双十一的时候,用户量爆增
    运维成本过高问题
    
4.学习一门技术,学习安装成本过高。
    关于安装软件成本过高

5.观看教学的视频链接:[教学视频](https://www.bilibili.com/video/BV1sK4y1s7Cj?p=15&spm_id_from=pageDriver&vd_source=c292c13c56b3f59cc3377816767ac5f3)
1.2 Docker由来
一帮年轻人创业,创办了一家公司,2010年专门做paas平台。
到2013年的时候,像亚马逊,微软,谷歌都开始做paas平台。
2013年,将公司内的核心技术对外开源。核心技术就是docker
2014年,得到C轮的融资
到2015年,得到D轮的融资
全神贯注维护docker
1.3 Docker的思想
1.集装箱
    会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。
    
2.标准化
    1.运输的标准:docker有一个码头,所有的集装箱都放在这个码头上,当谁需要某一个环境,就直接大海取搬运集装箱就可以了
    2.命令的标准:docker提高了一系列的命令,获取集装箱的操作
    3.提供了restAPI:衍生了很多的图形化界面,Ranch
3.隔离性
    docker在运行集装箱内的内容时,会在linux内耗中,单独开辟一个空间,这片空间不会影响到其他的服务
    
组成:
    注册中心:超级码头,上面放着集装箱
    镜像:集装箱
    容器:运行起来的镜像

二、Docker的基本操作

2.1 安装Docker
    1.下载Docker的依赖环境
    yum -y install yum-utils device-mapper-persistent-datalvm2
    
    2.设置下载Docker的镜像源
        yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        
    3.安装Docker
        yum makecache fast 这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
        
        yum -y install docker-ce
        
2.2 启动、并设置为开机自动启动、测试
    1.启动docker: systemctl start docker
    2.设置开机自动启动:systemctl enable docker
    3.测试是否成功:docker run hello-world
    

2.3 Docker的中央仓库
    1.Docker的官方仓库:这个仓库镜像最全,但是下载速度慢 不推荐使用
        https://hub.docker.com/
        
    2.国内的仓库:网易蜂巢 推荐使用
        https://c.163yun.com/hub#/home
        
    3. 在公司内部则采用私服的方式拉取镜像 需要添加配置
        1.找到etc/docker/daemon.json文件并修改
            如果在/etc/docker下找不到daemon.json文件,可以自己新建,cd切换到/etc/docker目录下,使用touch命令创建)
        {
            "registry-mirrors": ["https://registry.docker-cn.com"]
            "insecure-registries":["公司ip地址:ip地址的端口号"]
            } 
            
        2.重启服务
            systemctl daemon-reload
            systemctl restart docker
            
            
2.4镜像操作
    1.拉去镜像到本地(默认在中央仓库拉取)
        docker pull 镜像名称[:tag]
    
    2.到指定的仓库拉取
        docker pull daocloud,io/Library/tomcat:8.5.15-jre8 
            
    3.查看全部镜像
        docker image
        
    4.删除本地镜像
        docker rmi 镜像imageID
            举类:docker rmi fc(imageID)
            
    5.镜像的导入、导出
        1.将本地 的镜像导出:
            docker save -o 导出的路径 镜像id
            
        2.加载本地的镜像文件
            docker load -i 镜像名称
            
        3.修改镜像名称:
            docker tag 镜像id  镜像名称:镜像版本
    
2.5容器操作
    1.运行容器:
        docker run 镜像id 或者镜像名称
    2.常用的参数:
        docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像ID或者镜像名称
        -d:代表后台运行容器
        -p: 宿主机端口:容器端口
        --name:容器的名称
        
    3.查看正在运行的容器
        docker ps [qa]
            -a:查看所有的容器信息
            -p:只查看容器的id
            -qa:查看所有的容器id
            
    4.查看容器的日志
        docker logs -f 容器id
            -f: 代表可以滚动查看日志的最后几行
            
    5.进入容器的内部
        docker exec -it 容器id  bash
      
    6.停止容器运行
        docker stop 停止单个容器id
        docker stop $(docker ps -qa) 停止所有的容器
    7.删除容器
        docker rm 容器id 删除单个容器
        docker rm $(docker ps -qa) 删除全部容器
        
    8.启动容器
        docker start 容器id
        
    
2.6Docker的应用
    1.Mysql的容器
        1.运行Mysql的容器
            docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
    2.Tomcat容器
        1.运行Tomcat容器 前面已经搞定
        2.可以通过命令将宿主机的内容复制到容器中
            docker cp 文件名称 容器id:容器内部路径

三、数据卷

1.数据卷:将宿主机的一个目录映射到容器的一个目录中。可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

2.创建数据卷
    docker volume create 数据卷名称
    默认存放在 /var/lib/docker/volume/数据卷名称/_data
3.查看数据卷的详细信息
    docker volume inspect 数据卷名称
    
4.查看全部数据卷
    docker volume ls
    
5.删除数据卷
    docker volume rm 数据卷名称
    
6.应用数据卷
    1.当你映射数据卷时,如果数据不存在,docker会帮你自动创建(将容器内部文件存储在默认的路径中)
        docker run -v 数据卷名称:容器内部的路径 镜像id
    2.直接指定一个路径作为数据卷的存放位置  (需要手动添加内容)
        docker run -v 路径:容器内部的路径 镜像id
    
    3.

四、自定义镜像

1.中央仓库上的镜像,也是Docker用户自己上传上去的

2.创建Dockerfile文件,并且指定自定义镜像信息

    from:指定当前自定义镜像依赖的环境
    copy:将相对路径下的内容复制到自定义镜像中
    workdir:声明镜像的默认工作目录
    cmd:需要执行的目录
    举个例子:
        from daocloud.io/library/tomcat:8.5.15-jre8
        copy ssm.war /usr/local/tomcat/webapps
        
3.将准备好的Dockerfile和相应的文件拖拽到Linux系统中,通过docker的命令制作镜像
    docker build -t 镜像名称:版本号 .

五、Docker-Compose

1.说明
    1.运行一个镜像,需要添加大量的参数
    2.可以通过Docker-Compose编写这些参数
    3.Docker-Compose可以批量管理我们的容器
    4.只需要通过一个docker-compose.yml文件去维护即可
    
2.下载Docker-Compose
    1.去github搜索下载Docker-Compose
    2.将下载好的文件,放在Linux系统中
    3.授权文件变成可执行的文件 chmod 777 文件名
    4.方便后期操作,配置环境变量,编辑后需要重启环境变量
        1.将Docker-compose文件移动到/usr/local/bin,然后修改profile文件,添加编辑变量
            export PATH =
        2.source /etc/profile
        
    5.测试一下
        在任意目录下输入docker-compose
        
3.Docker-Compose管理Mysql和tomcat容器
    1.yml文件以key:value方式来指定配置信息
    多个配置文件以 换行 +缩进来区分
    配置:
        version: '3.1'
        services:
            mysql: #服务名称
                restart: always #只有docker启动,容器则启动
                image: daocloud.io/library/mysql:5.7.4  #指定镜像
                container_name: mysql #指定容器名称
                ports:
                    -3306:3306 #端口的映射
                    
                environment:
                    MYSQL_ROOT_PASSWORD: root #指定mysql用户的登陆密码
                    TZ: Asia/shanghai #时区
                    
                volumes:
                    - /opt/docker_mysql/data: /var/lib/mysql #映射数据卷
                    
            tomcat:
                 restart: always #只有docker启动,容器则启动
                 image: daocloud.io/library/tomcat:8.5.15.jre8
                 container_name: tomcat
                 ports:
                    - 8080:8080
                environment:
                    TZ: Asia/shanghai #时区
                    
                volumes:
                    - /opt/docker_mysql_tomcat/data: /usr/local/tomcat/webapps
                    - /opt/docker_mysql_tomcat/tomcat_logs: /usr/local/tomcat/logs
                 
    2.运行Docker-compose命令
        1.在使用docker-compose命令时,会默认在当前目录下找docker-compose.yml文件
                    
                    
        2.运行命令
            docker-compose up -d
                
        3.关闭并删除容器
            docker-compose down
            
        4.开启或者关闭或者重启已经存在的由docker-compose维护的容器
            docker-compose start|stop|restart
            
        5.查看由docker-compose管理的容器
            docker-compose ps
            
        6.查看日志
            docker-compose log -f
            
    3. Doctor——compose配置Dockerfile使用
        1.使用docker-compose.yml文件以及dokcerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理镜像
        
        2.yml文件
            version: "3.1"
            services:
                ssm:
                    restart: always
                    build: #构建自定义镜像
                        context: ../ 指定dockerfile文件的所在路径
                        dockerfile: Dockerfile #指定Dockerfile文件名称
                    image: ssm:1.0.0
                    container_name: ssm
                    ports:
                        - 8081:8080
                    environment:
                        TZ: Asia/Shanghai
                
        3.Dockerfile文件
            from daocloud.io/library/tomcat:8.5.15-jre8
            copy ssm.war /usr/local/tomcat/webapps
            
        4.可以直接启动基于docker-compose.yaml以及Dockerfile文件构建的自定义镜像
            docker-compose up -d
            如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义已经存在,会直接运行这个自定义镜像
            重新构建自定义镜像
                docker-compose build
                
            运行前,重新构建
                docker-compose up -d --build

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值