images\cherry_red.png1 Docker的学习-gaogaoTwo
      images\cherry_blue.png1.1 docker常见问题故障
         images\cherry_orange.png1.1.1 docker容器无法远程连接MySQL
      images\cherry_blue.png1.2 Docker基础命令
         images\cherry_orange.png1.2.1 docker logs
         images\cherry_orange.png1.2.2 镜像构建优化
         images\cherry_orange.png1.2.3 network
         images\cherry_orange.png1.2.4 内部安装应用命令
         images\cherry_orange.png1.2.5 docker ps
      images\cherry_blue.png1.3 Docker网络模式
      images\cherry_blue.png1.4 docker compose
         images\cherry_orange.png1.4.1 docker-compose安装
      images\cherry_blue.png1.5 部署Tomcat 运行环境
      images\cherry_blue.png1.6 docker(compose) LNMP环境的部署
      images\cherry_blue.png1.7 docker 搭建部署Redis集群
      images\cherry_blue.png1.8 docker 搭建部署MongoDB集群
         images\cherry_orange.png1.8.1 MongoDB(configsvr)配置服务器
         images\cherry_orange.png1.8.2 MongoDB(shared) 分片初始化操作
         images\cherry_orange.png1.8.3 配置MongoDB(Mongos)路由服务器
         images\cherry_orange.png1.8.4 MongoDB测试集群可用性
      images\cherry_blue.png1.9 docker 搭建部署MySQL主从复用
      images\cherry_blue.png1.10 docker+Keepalived+Nginx高可用
      images\cherry_blue.png1.11 docker+Ansible多节点集群管理
      images\cherry_blue.png1.12 docker(compose)+Zabbix 多节点监控服务
      images\cherry_blue.png1.13 docker 部署文件目录下载
      images\cherry_blue.png1.14 docker
         images\cherry_orange.png1.14.1 docker镜像管理
         images\cherry_orange.png1.14.2 docker容器
         images\cherry_orange.png1.14.3 docker容器高级操作
Docker容器的高级操作
1.映射端口 2.挂载数据卷 3.传递环境变量 4.容器内安装软件(工具)*yum/apt-get/apt(三种安装软件的方式)等。
*docker下载NGINX镜像:
Docker pull nginx:1.12.2
给容器打标签:
Docker tag 632787ed7ae3 jiangshuai01/nginx:v1.12.2
创建映射端口,退出即删除,开放81端口映射8端口
Docker run --rm --name mynginx -d -p81:80 jiangshuai01/nginx:v1.12.2
挂载数据卷:
1.wget百度首页
wget www.baidu.com -O index.html
2.挂载数据卷
Docker run --rm --name nginx_baidu -d -p82:80 -v/root/html:/usr/share/nginx/html jiangshuai01/nginx:v1.12.2
3.进入nginx_baidu容器:
Docker exec -it nginx_baidu /bin/bash
4.检查运行内容
Docker inspect  632787ed7ae3(容器ID) |grep share
**给容器传递环境变量在生产上是一种非常重要的手段**
传递环境变量:定义一个E_OPTS和C_OPTS的环境变量并打印所有环境变量
Docker run --rm -e E_OPTS=abcd -e C_OPTS=1234 jiangshuai01/nginx:v1.12.2 printenv
**容器内安装软件**
1.更新apt源
images\23-1.png

**比如安装curl**
apt-get update && apt-get install curl -y
**固化上面容器**
Docker commit -p 8c440edc4f jiangshuai01/nginx:curl
**将固化镜像推到公网**
Docker push jiangshuai01/nginx:curl


dockerfile概述:
images\23-2.png

Docker制作镜像的命令:
1.通过commit命令将容器转化成镜像:
2.通过dockerfile构建一个镜像,实际生产基本上都是用到dockerfile构建镜像。
images\23-3.png
 
**Dockerfile创建容器的规则**
images\23-4.png




4组核心dockerfile指令
*USER/WORKDIR指令  *ADD/EXPOSE指令  *RUN/ENV指令  *CMD/ENTRYPOINT指令
1.USER/WORKDIR指令:
**先vim一个Dockerfile文件
Vim /data/dockerfile/Dockerfile
**写入内容
FROM  docker.io/jiangshuai01/nginx:v1.12.2    #指定镜像
USER nginx                      #指定用户
WORKDIR /usr/share/nginx/html     #指定家目录
**准备完成,就可构建docker镜像
Docker build . -t docker.io/jiangshuai01/nignx:v1.12.2_user_workdir(其中”.”表示在当前目录下,-t表示打标签)
**最后用该镜像创建容器,验证USER和WORKDIR是否跟设置一样(“whoami”,”pwd”)
Docker run --rm -it --name nginx01 jiangshuai01/nginx:v1.12.2_user_workdir /bin/bash
2.ADD/EXPOSE指令:
**同上先创建好Dockerfile文件再vim进去**
Vim /data/dockerfile/Dockerfile
**写入内容:
FROM  docker.io/jiangshuai01/nginx:v1.12.2    #指定镜像
ADD index.html /usr/share/nginx/html/index.html  #将要挂载的内容放入,注意需要将原挂载文件跟Dockerfile放在同目录
EXPOSE 80                                  #监听端口
**创建镜像:
Docker build . -t jiangshuai01/nginx:v1.12.2_add_expose
**通过交互模式启动容器,需要在容器里面启动NGINX:(nginx -g ”daemon off; ”)
Docker run --rm -it --name nginx02 -P jiangshuai01/nginx:v1.12.2_add_expose /bin/bash
**启动容器的同时直接启动NGINX:                (上下两个命令的-P表示随机指定端。-p表示自己指定端口)
Docket run --rm -d --name nginx02 -P jiangshuai01/nginx:v1.12.2_add_expose /bin/bash
3.RUN/ENV指令:
**上同:
FROM  centos:7
ENV  VER 9.11.4
RUN yum install bind-$VER -y
**创建镜像:
Docker build . -t jiangshuai01/bind:v9.11.4_env_run
Docker run -it --rm jiangshuai01/bind:v9.11.4_env_run /bin/bash