Docker-互联网分布式

docker版本

  • dockerCE(免费) dockerEE(付费)
  • 官网 www.docker.com

docker安装

  • docker 并不是容器,而是一个管理容器的引擎
  • centos7系统可以直接通过yum进行安装
  • 查看系统是否已经安装了docker yum list installed |grep docker
  • 安装 yum install docker -y
  • 安装后使用docker --version(docker version,docker -v) 查看docker的版本
  • 卸载 yum remove docker -y

docker启动

  • 启动 systemctl start docker or service docker start
  • 停止 systemctl stop docker or service docker stop
  • 重启 systemctl restart docker or service docker restart
  • 状态 systemctl status docker or service docker status
  • 查看进程 ps -aux|grep docker
  • 查看信息 docker info

docker 使用初体验

  • 底层运行原理:docker 服务启动-->下载景象-->启动该镜像得到一个容器-->容器中运行着我们想要的程序
  • 五大部分:客户端client、docker引擎、镜像images、仓库(https://hub.docker.com)、容器(containers)
  • 第一个docker容器
  • 下载镜像 docker pull tomcat
  • docker中镜像数量 docker images
  • 运行镜像 docker run imageid|name eg:tomcat(前台运行) docker run -d imageid|name eg:tomcat(后台启动)
  • 搜索镜像 docker search tomcat
  • docker容器启动查询命令 ps -ef|grep tomcat
  • 端口映射 docker run -d -p 8080:8080 imageid|name eg:tomcat(前台运行)
  • 退出容器 exit
  • 关闭容器 docker stop 容器id(docker images)|容器名称
  • 删除镜像 docker rmi name rm 是删除容器
  • 进入docker容器
  • 进入容器:docker exec -it imagesid bash
  • 其中i 是交互式的,也就是保持标准输入流打开;
  • t表示虚拟控制台,分配到一个虚拟控制台
  • 退出容器 exit
  • 查看当前docker中运行的容器 docker ps
  • 补充docker 清空 redis缓存
  • 1、docker ps //查看redis镜像的imgid
  • 2、docker exec -it imagid bash //进入容器内部
  • 3、进入redis-cli目录 执行命令 dbsize&&flushall 然后 exit
  • 4、制定key之缓存清理 :
  • 登陆至制定端口的redis服务器eg:redis-cli -h 127.0.0.1 -p 6379
  • 如果redis设置密码 eg:redis-cli -h 127.0.0.1 -p 6379 -a passwd
  • 查看所有的key值 keys*
  • 删除指定索引的值 del key
    redis-cli -h 127.0.0.1 -p 6379 -a passwd

docker核心组件

  • 核心要素 镜像(images) 容器(container) 仓库(repository) 客户端(client) 引擎
  • 镜像(images)
  • docker镜像就是一个只读的模板,可以用来创建docker容器
  • 一个镜像可以包含一个完整的centos操作系统,里面仅安装了mysql或用户需要的其它应用程序
  • docker 提供了一个非常简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用;镜像是由许多层的文件系统叠加构成,最下面是一个引导文件系统bootfs,第二层是一个root文件系统rootfs,root文件系统通常是某种操作系统,比如 centos,ubuntu,在root文件系统之上又有很多层文件系统,这些文件系统叠加在一起,构成docker中的镜像;
  • 镜像的日常操作 docker pull name:version
  • 容器(contains)
  • docker 利用容器来运行应用,镜像是可读的,容器在启动的时候创建一层可写层作为最上层,容器是从镜像创建的运行实力。它可以被启动、停止,删除,每个容器是相互隔离的、保证安全平台。
  • 容器日常操作
  • 一种是基于镜像创建一个容器并启动,另外一个是将在终止状态的容器重新启动
  • 通过镜像启动容器 docker run -d (-p 8080:8080) redis
  • 查看运行中的容器 docker ps
  • 查看所有的容器 docker ps -a
  • 停止容器 docker stop 容器id或容器名称
  • 开启容器 docker start 容器id或容器名称
  • 进入容器内部 docker exec -it imagid bash //
  • 删除容器 docker rm 容器id或容器名称
  • 查看容器的更多信息 docker inspect 容器id或容器名称
  • 删除全部容器并停用 docker rm $(docker ps -q) & docker rm -f &(docker ps -aq)
  • 仓库 分为公有仓库、私有仓库
  • 最大的公开仓库 docker hub (https://hub.docker.com) 国内镜像网站(https://dev.aliyun.com)
  • 当用户创建了自己的镜像之后可以使用push命令将它上传到公有或者私有仓库,这样下次在另一台机器上使用这个镜像时候,只需要从仓库上pull下来即可
  • 注:docker仓库的概念根git类似,注册服务器也类似与gitHub这样的托管服务
  • 仓库的日常操作
  • 查看官方仓库里的镜像 docker search rabbitmq

docker 使用实例

  • 下载mysql 镜像
  • docker pull mysql:latest (安装的是mysql8.0)
  • 运行mysql -e是指定环境变量
  • docker run -p 3306:3306 -e MYSQL_DATABASE=workdb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
  • 进入到容器中 docker exec -it imageid bash
  • 登陆mysql mysql -u root -p
  • 修改密码 alter user 'root'@'localhost' identified by '123456';
  • 授权远程登陆访问
  • create user 'wkcto'@'%'identified with mysql native_password by '123456';
  • grant all privileges on . to 'wkcto'@'%';
  • 备注 将linux中文件上传到docker 容器中 docker cp path 容器id:path

自定义docker 镜像

  • DockerFile样例 dockerfile 用于构建docker镜像,dockerfile文件是由一行行命令语句组成,基于这些命令既可以构建一个镜像
  • DockerFile 样例
    FROM XXX/jdk:8
    MAINTAINER docker_user
    ENV JAVA_HOME /usr/local/java
    ADD apache-tomcat-8.0.32.tar.gz /usr/local/
    RUN mv apache-tomcat-8.0.32 tomcat8
    EXPOSE 8080
    RUN chmod u+x /usr/local/tomcat8/bin/*.sh
    CMD /usr/local/tomcat8/bin/catalina.sh start
  • 1、基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令
  • 构建镜像 docker build -t wkcto_jdk1.8.0.121 .
  • 镜像加速器 1、进入/etc/docker 2、在daemon.json 中添加一句 eg:

docker 部署springboot项目程序

==

docker 保存镜像

  • docker commit imageid tags 此tags的imagesid不会被修改数据
posted @ 2021-10-13 19:59  紫色水杯  阅读(39)  评论(0)    收藏  举报