1.CentOS安装Docker
    1.1.卸载(可选)
    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine \
    docker-ce
    1.2.安装docker
    yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2 —skip-broken
    # 设置docker镜像源
    yum-config-manager \
    —add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    sed -i ‘s/download.docker.com/mirrors.aliyun.com\/docker-ce/g’ /etc/yum.repos.d/docker-ce.repo

    yum makecache fast
    然后输入命令:
    yum install -y docker-ce

    1.3.启动docker
    启动docker前,一定要关闭防火墙!!
    # 关闭
    systemctl stop firewalld
    # 禁止开机启动防火墙
    systemctl disable firewalld

    通过命令启动docker:
    systemctl start docker # 启动docker服务

    systemctl stop docker # 停止docker服务

    systemctl restart docker # 重启docker服务

    systemctl status docker # 检查docker状态

    systemctl enable docker # 设置docker服务开机自启

    输入命令,可以查看docker版本
    docker -v

    2.CentOS7安装DockerCompose
    输入docker命令加 —help 可以显示提示信息

    其余步骤参考文档day03 资料 Centos7安装Docker.md

    关于Docker的一些问题:
    Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
    Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
    Docker应用运行在容器中,使用沙箱机制,相互隔离

    Docker如何解决开发、测试、生产环境有差异的问题?
    Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
    Docker是一个快速交付应用、运行应用的技术,具备下列优势:
    可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
    运行时利用沙箱机制形成隔离容器,各个应用互不干扰
    启动、移除都可以通过一行命令完成,方便快捷

    1.2.Docker和虚拟机的区别
    Docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。

    两者有什么差异呢?
    虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。
    Docker仅仅是封装函数库,并没有模拟完整的操作系统,

    Docker的基本操作
    镜像操作
    首先去镜像仓库搜索镜像,比如 hub.docker.com
    根据查看到的镜像名称,拉取自己需要的镜像,
    拉去命令:docker pull 镜像名:版本号不写默认是 latest
    查看镜像列表命令:docker images

    导出镜像命令 :docker save -o [保存的目标文件名称] [镜像名称]
    例如 docker save -o nginx.tar nginx:latest
    将镜像保存成压缩包
    latest 镜像的版本号

    使用docker rmi 镜像名 删除镜像
    使用docker rmi 镜像id 删除镜像

    加载镜像命令:docker load -i nginx.tar
    容器操作

    • docker run:创建并运行一个容器,处于运行状态
    • docker pause:让一个运行的容器暂停
    • docker unpause:让一个容器从暂停状态恢复运行
    • docker stop:停止一个运行的容器
    • docker start:让一个停止的容器再次运行
    • docker rm:删除一个容器

      1. docker exec -it mn bash : 进入容器

    docker run命令的常见参数有哪些?
    docker run —name mn -p 80:80 -d nginx 创建并运行一个容器处于运行状态
    docker run 选项顺序不固定 镜像名称

    • —name:指定容器名称,一台机器上容器名称不能重复
    • -p:指定端口映射 80:80 前面端口是宿主机的随便改 ,后面不行
    • -d:让容器后台运行, -t : 让容器交互式运行(弹出窗口)

      nginx :镜像名称或者ID
      回车弹出一大串8cca64de4a4d9bbe53bb1e662e5023e53d342c96941b5d06ce4d6f8a20eb9f66
      容器的唯一标识

    查看容器日志的命令:

    • docker logs
    • 添加 -f 参数可以持续查看日志,后跟容器的名称

    查看容器状态:

    • docker ps
    • docker ps -a 查看所有容器,包括已经停止的

    删除容器:
    docker rm -f 容器名 删除容器
    也可以先停止,再删除
    docker stop 容器名 ,docker rm 容器名
    进入容器:
    docker exec -it 容器名 bash
    进入容器操作里面的文件不推荐

    组合命令
    到单位先用!!!
    docker rm docker ps -a -q删除所有容器
    docker rmi docker images -q删除所有镜像
    -q 只显示ID
    作用:爽

    拷贝文件到容器且指定的目录:
    docker cp ./XXX.html mn:/
    从容器中下载文件到本地根目录:
    dockers cp mn:/xxx.html ./

    设置容器自启动 docker update —restart always 容器名称

    数据卷操作

    数据卷的作用:

    • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

    数据卷操作:

    • docker volume create 数据卷名:创建数据卷
    • docker volume ls:查看所有数据卷
    • docker volume inspect 数据卷名:查看数据卷详细信息,包括关联的宿主机目录位置
    • docker volume rm 数据卷名:删除指定数据卷
    • docker volume prune:删除所有未使用的数据卷

    数据卷挂载
    1.创建一个名为html数据卷
    docker volume create html
    2.查看数据卷详细信息
    docker volume inspect html
    查看数据卷的位置
    “Mountpoint”: “/var/lib/docker/volumes/html/_data”,
    3.创建容器的时候挂在数据卷
    -v就是挂载数据卷的命令
    docker run -d —name mn -v html:/root/html -p 80:80 nginx:latest
    4.进数据卷目录
    cd /var/lib/docker/volumes/html/_data
    5.修改文件
    vi index.html

    目录直接挂载
    docker run —name mysql -p 3306:3306 -v /my/custom:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:tag
    tag(版本号)