Docker笔记

一、Docker安装

1、yum包更新

        yum update

        

2、安装需要的软件包

        yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

        yum install -y yum-utils device-mapper-persistent-data lvm2

3、设置yum源

        yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4、安装docker

        yum install -y docker

5、查看docker版本,验证是否验证成功

        docker -v

二、Docker架构

1、镜像(Image)

        Docker镜像,就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就是包含了完整的一套Ubuntu16.04最小系统的root文件系统。

2、容器(Container)

        镜像和容器的关系,就像是面向对象程序设计中的类和对象一样,镜像静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停。

3、仓库(Repository)

        仓库可看成一个代码控制中心,用来保存镜像。

4、中央仓库

        https://hub.docker.com

三、配置镜像加速度

        阿里云

四、Docker操作

1、Docker服务操作

        (1)启动docker

                systemctl start docker

        (2)查看docker状态

                systemctl status docker

        (3)关闭docker

                systemctl stop docker

        (4)重启docker

                systemctl restart docker

2、镜像的操作

        (1)拉取镜像

                docker pull 镜像名称

                docker pull 镜像名称:版本

        (2)查看全部镜像

                docker images

                docker images -q (查看全部镜像的编号)

        (3)删除镜像

                docker rmi 镜像的标识

                docker rmi `docker image -q` (删除全部镜像)

        (4)镜像的导出

                docker save -o 导出的路径 镜像id

        (5)镜像的导入

                docker load -i 镜像文件

        (6)镜像重命名

                docker tag 镜像id 镜像名:标识

        (7)搜索镜像(联网)

                docker search 镜像名称

        (8)提交修改

                docker commit 镜像id

3、容器的操作

        (1)启动容器

                docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识 | 镜像名称[:tag]

                        -d :代表后台运行容器

                        -p 宿主机端口:容器端口 :做端口映射

                        --name 容器名称 :指定容器的名称

        (2)查看容器

                docker ps [-qa]

                        -a : 查看全部的容器,包括没有运行的

                        -q :只查看容器的标识

        (3)查看容器日志

                docker logs -f 容器id

                        -f :可以滚动查看日志的最后几行

        (4)进入容器内部

                docker exec -it 容器id bash

        (5)删除容器(删除容器前需要先停止容器)

                docker stop 容器id

                docker rm 容器id

                docker rm $(docker ps -qa) (杀死全部)

        (6)重启容器

                docker start 容器id

        (7)查看容器信息

                docker inspect 容器id

4、数据卷

        将宿主机中的一个目录映射到容器的一个目录中。

        可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会随着改变

        (1)创建数据卷

                docker volume create 数据卷名称

                创建数据卷之后,默认会存放在一个目录下 /var/lib/dpcker/volumes/数据卷名称/_data

        (2)查看数据卷的详细信息

                docker volume inspect 数据卷名称

        (3)查看全部数据卷

                docker volume ls

        (4)删除数据卷

                docker volume rm 数据卷名称

        (5)应用数据卷

                当映射数据卷时,如果数据卷不存在,docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中

                docker run -v 数据卷名称:容器内部路径 镜像id

                直接指定一个路径作为数据卷的存放位置,这个路径下是空的

                docker run -v 路径:容器内的路径 镜像id

5、数据卷容器

        (1)创建数据卷容器

                docker run -it --name=容器名称 -v /volume(容器内路径) 容器名称:版本 /bin/bash

        (2)创建容器使用数据卷

                docker run -it --name=c1 --volumes-form c3 容器名称:版本 /bin/bash

四、Docker原理

1、操作系统组成部分

        进程调度子系统

        进程通信子系统

        内存管理子系统

        设备管理子系统

        文件管理子系统

        网络通信子系统

        作业控制子系统

2、Linux文件系统

        Linux文件系统由bootfs和rootfs两部分组成。

        bootfs:包含bootloader(引导加载程序)和kernel(内核)

        rootfs:root文件系统,包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件

        不同的linxu发行版,bootfs基本一样,二rootfs不同。

3、Docker镜像原理

        Docker镜像是由特殊的文件系统叠加而成。

        最低层是bootfs,并使用宿主机的bootfs

        第二层是root文件系统rootfs,称为base image

        然后再往上可以叠加其他的镜像文件。

        docker的同一文件系统即使能够将不同的层整合成为一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度来看,只存在一个文件系统。

        一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像称为基础镜像。

        当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。

五、docker自定义镜像

1、创建一个Dockerfile文件

        Dockerfile文件中常用的内容

                FROM:指定当前自定义镜像依赖的环境

                MAINTAINER:维护者信息

                RUN:执行命令

                COPY/ADD:将相对路径下的内容复制到自定义景象中

                ENV:定义环境变量

                ARG:定义参数

                VOLUME:定义数据卷

                EXPOSE:指定暴露的端口

                USER:指定用户及用户组

                LABEL:定义元数据

                WORKDIR:声明镜像的默认工作目录

                CMD:需要执行的命令(在workdir下执行的,cmd可以写多个,但是指以会后一个为准)

2、启动镜像

        将准备好的Dockerfile和响应的文件拖拽到linux操作系统中,通过docker的命令制作镜像

docker build -f Dockerfile文件 -t 镜像名称:[tag] .

六、docker-compose

        docker-compose可以帮助我们批量的管理容器,只需要通过一个docker-compose.yml文件去维护即可。

1、安装

        (1)去github下载docker-compose 下载1.24.1版本

        (2)将下载好的文件拖入linux

        (3)改变docker-compose名字,增加执行权限

        (4)将docker-compose移动到/usr/local/bin,添加环境变量

        (5)测试,任意目录下数据docker-compose

2、docker-compose.yml文件

        文件示例:

        version: '3.1'

        services:

                mysql: # 服务的名称

                        restart: always # 代表只要docker启动,那么这个容器就跟着一起启动

                        image: mysql:5.7.4 # 指定镜像路径

                        container_name: mysql # 指定容器名称

                        ports:

                                - 3306:3306 # 指定端口号的映射

                        environment:

                                MYSQL_ROOT_PASSWORD: root # 指定MySQL的ROOT用户登录密码

                                TZ: Asia/Shanghai # 指定时区

                        volumes:

                                - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql # 映射数据卷

                tomcat:

                        restart: always

                        image: tomcat:8.5.15-jre8

                        container_name: tomcat

                        ports:

                                - 8080:8080

                        environment:

                                TZ: Asia/Shanghai

                        volumes:

                                - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps

                                - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

3、docker-compose命令

        在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件

        (1)基于ducker-compose.yml启动管理的容器

                docker-compose up -d

        (2)关闭并删除容器

                docker-compose down

        (3)开启|关闭|重启已经存在的有docker-compose维护的容器

                docker-compose start|stop|restart

        (4)查看有docker-compose管理的容器

                docker-compose ps

        (5)查看日志

                docker-compose logs -f

七、Docker容器虚拟化与传统虚拟机比较

1、相同

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

2、不同

        容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。

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

3、对比

特性

容器

虚拟机

启动

秒级

分钟级

硬件使用

一般为MB

一般为GB

性能

接近原生

弱于容器

系统支持量

单机支持上千容器

一般几十个

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值