1. docker是一种容器技术,解决软件跨环境迁移的问题
    2. 1yum包更新到最新
    3. #yum update
    4. 2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    5. #yum install -y yum-utils device-mapper-persistent-data lvm2
    6. 3、设置yum
    7. #yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    8. 4、安装docker,出现的界面都按y (-y的含义是不用手动输入y)
    9. #yum install -y docker-ce
    10. 5、查看docker版本,验证是否成功
    11. #docker -v
    1. 1、镜像(Image)
    2. Docker镜像就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。
    3. 2、容器(Container)
    4. 镜像和容器的关系就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建、启动、停止、删除、暂停等
    5. 3、仓库(Repository)
    6. 仓库可以看成一个代码控制中心,用来保存镜像
    1. 1、登录阿里云->控制台->产品与服务->搜索容器镜像服务->选择镜像工具->镜像加速器
    2. 2、将配置命令粘贴到服务器运行即可
    1. 1、启动docker
    2. #systemctl start docker
    3. 2、停止docker
    4. #systemctl stop docker
    5. 3、重启docker
    6. #systemctl restart docker
    7. 4、查看docker状态
    8. #systemctl status docker
    9. 5、开机启动docker
    10. #systemctl enable docker
    1. 1、查看镜像:查看本地所有的镜像
    2. #docker images
    3. #docker images -q (查看所有镜像的id)
    4. 2、搜索镜像:从网络中查找需要的镜像
    5. #docker search 镜像名称
    6. 3、拉取镜像:从docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本,如果不知道镜像版本,可以去hub.docker.com搜索对应镜像查看
    7. #docker pull 镜像名称
    8. 4、删除镜像:删除本地镜像
    9. #docker rmi 镜像id/tag
    10. #docker rmi `docker images -q` (删除本地所有镜像)
    1. 1、查看容器
    2. #docker ps (查看正在运行中的容器)
    3. #docker ps -a (查看所有容器)
    4. 2、创建并启动容器
    5. #docker run 参数
    6. 参数说明:
    7. -i:保持容器运行。通常与-t同时使用,加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
    8. -t:为容器重新分配一个伪输入终端,通常与-i同时使用。
    9. -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器。退出后,容器不会关闭。
    10. -it创建的容器一般称为交互式容器,-id创建的容器一般称为守护式容器
    11. --name:为创建的容器命名。
    12. 3、创建一个redis镜像容器:
    13. #docker run -id --name=c1 redis:5.0
    14. 4、进入容器
    15. #docker exec 参数
    16. #docker exec -it c1
    17. 5、退出容器:
    18. #exit
    19. 6、停止容器
    20. #docker stop 容器名称/容器id
    21. 7、启动容器
    22. #docker start 容器名称/容器id
    23. 8、删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
    24. #docker rm 容器名称
    25. 9、查看容器信息
    26. #docker inspect 容器名称
    27. 10、注意:'\'命令的含义是换行,当命令特别长的时候可以换行继续输入
    1. 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步。一个数据卷可以被多个容器铜焊丝挂载,一个容器可以被挂载多个数据卷。
    2. 数据卷的作用:
    3. 1.容器数据持久化
    4. 2.外部机器和容器内部间接通信
    5. 3.容器之间数据交换
    6. 配置数据卷
    7. 1.创建启动容器时,使用-v参数 设置数据卷
    8. #docker run ... -v 宿主机目录(文件):容器内目录(文件)...
    9. 注意事项:
    10. 1.目录必须是绝对路径
    11. 2.如果容器内目录不存在,会自动创建
    12. 3.可以挂在多个数据卷
    13. 2.创建redis容器并挂载目录
    14. #docker run -it --name=c1 -v /root/data:/root/data_container redis:5.0
    15. 数据卷容器
    16. 1、多容器进行数据交换
    17. 1.多个容器挂载同一个数据卷
    18. 2.数据卷容器
    19. 2、配置数据卷容器
    20. 1.创建启动c3数据卷容器,使用-v参数设置数据卷
    21. #docker run -it --name=c3 -v /volume centos:7
    22. (如果不输入:之前的目标目录,则系统会默认分配一个挂载目录)
    23. 2.创建启动c1 c2容器,使用--volumes-from参数设置数据卷
    24. #docker run -it --name=c1 --volumes-from c3 centos:7
    25. #docker run -it --name=c2 --volumes-from c3 centos:7
    26. (此时c1 c2已经挂载成功了,及时此时关闭c3容器,c1 c2依旧能正常通信)
    1. 容器内的网络服务和外部机器不能直接通信
    2. 外部机器可以和宿主机直接通信
    3. 宿主机和容器可以直接通信
    4. 当容器中的网络服务需要被外部机器访问时们可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
    5. 这种操作称为:端口映射