优质网站建设服务,seo 关键词优化,教育网站建设备案,微信里的小程序怎么彻底删除第一章、Docker基本概念
1、概念#xff1a;Docker是一种容器技术#xff0c;可以解决软件跨环境迁移问题。 2、实现原理#xff1a;是一个分层复用的文件系统#xff1b;每一层都是一个独立的软件#xff1b; … 第一章、Docker基本概念
1、概念Docker是一种容器技术可以解决软件跨环境迁移问题。 2、实现原理是一个分层复用的文件系统每一层都是一个独立的软件 在最底层复用Linux系统的bootfs
3、组成7部分 仓库用于存放镜像 本地守护进程这个就是软件运行的进程 客户端命令行中的docker 命令 镜像就是一个制作好的操作系统文件类似安装操作系统的iso --静态的 容器就是镜像运行起来的运行态系统 可被创建启动停止 --动态的 docker-compose用于批量管理容器的工具 dockerfile使用脚本来制作镜像的工具
镜像和容器就像是面向对象编程中的 类和实例。
4、Docker 使用客户端-服务器 (C/S) 架构模式使用远程API来管理和创建Docker容器
5、Docker架构 第二章、Docker常用命令
1、Docker守护进程/服务的操作命令【6个】
systemctl start dockersystemctl stop dockersystemctl restart dockersystemctl status dockersystemctl enable docker //开机自启动systemctl disenable docker 2、Docker 镜像的操作命令【7个】
远程镜像 docker search 镜像关键字 搜索远程仓库中的镜像 也可以通过hub.docker.com/网站进行搜索 docker pull 镜像名称:镜像版本 下载镜像到本地 docker push 把本地的镜像上传到远程仓库
本地镜像 删 docker rmi 镜像名称:镜像版本 docker rmi 主键有容器则不能删除对应的镜像 查 docker images 查询本地有啥镜像 docker images -q 指查询镜像的主键 导入docker load -i 压缩文件名称 导出 docker sava -o 压缩文件名称 镜像名称:版本
3、Docker容器的操作命令【10个】 查看容器 docker ps 查看当前有那些运行的容器 docker ps -a 查看当前本机有那些容器运行和停止的容器 创建容器 docker run 参数 镜像名称:版本 启动后执行的命令 交互式创建后立即进入容器如果推出容器则容器自动关闭exit docker run -it 镜像名称:版本 /bin/bash 权限问题要加参数 docker run -it --privilegedtrue -uroot --namemysqlTest -v /root/data:/root/data_container mysql:5.7 /bin/bash 守护式创建容器后不自动进入容器在后台运行 docker run -id 镜像名称:版本 /bin/bash 进入容器docker exec -it 【容器的名称、容器的ID】 /bin/bash 删除容器docker rm 【容器的名称、容器的ID】 运行中的容器不能删除 启动容器docker start 【容器的名称、容器的ID】 停止容器docker stop 【容器的名称、容器的ID】 重启容器docker restart 【容器的名称、容器的ID】 查看容器详情docker inspect 【容器的名称、容器的ID】 把容器提交成镜像docker commit 【容器的名称、容器的ID】 镜像名称:版本 查看容器日志docker logs -f 容器名称
容器是个动态的 stop后依然占用着资源 restart后依然可以重启但是删除后就彻底没有了 第三章、Docker容器的数据卷
1、数据卷概念
为了实现容器与外部交互但又不可以直接所以在宿主机单独搞一个数据卷也就是一个目录让容器内也搞一个目录将容器内的目录挂载到宿主机的目录数据卷并且同步共享数据。从而实现容器内数据持久化容器与其他容器交互与外部机器交互。
数据卷本质宿主机的目录/文件
容器三大作用数据持久化容器与外部机器通信容器之间数据交互 2、数据卷配置
创建启动容器时直接使用 -v 参数配置数据卷
docker run... -v 宿主机目录文件):容器目录文件
注意目录必须为绝对路径若目录不存在则自动创建可挂载多个数据卷添加多个-v 将容器目录挂载到宿主机目录实现数据同步共享当删除容器后 宿主机的目录及数据依然还在容器的都没了。当其他容器挂载到此目录 就可以获取宿主机该目录下的数据 也就是实现宿主机与容器的交互。 俩容器交互 也就是将俩容器都挂载到同一宿主机的同一目录。
一个容器在数据卷内的任何操作的数据 另外一个容器在数据卷挂载的目录都可以获取。
3、数据卷容器 数据卷容器扮演一个中介的角色只是为了在将容器目录挂载到数据卷上 书写简单些
在查看各个容器mounts时本质上挂载到的仍然是宿主机的目录
配置数据卷容器c3
使用参数 -v /自定的本地目录名
docker run -it --privilegedtrue -uroot --namec3 -v /volume mysql:5.7 /bin/bash
数据卷容器 自动 挂载到宿主机某个目录下 想知道使用docker inspect c3在mounts下可看见
创建容器c1挂载到数据卷容器c3
使用参数 --volumes-from 数据卷容器名
docker run -it --privilegedtrue -uroot --namec1 --volumes-from c3 mysql:5.7 /bin/bash创建容器c1挂载到数据卷容器c3 docker run -it --privilegedtrue -uroot --namec2 --volumes-from c3 mysql:5.7 /bin/bash
第四章、应用部署
1、部署MySQL 上述可能报错正确使用以下绝对路径
docker run -id \-p 3307:3306 \--namec_mysql \-v /root/mysql/conf:/root/mysql/etc/mysql/conf.d \-v /root/mysql/logs:/root/mysql/logs \-v /root/mysql/data:/root/mysql/var/lib/mysql \-e MYSQL_ROOT_PASSWORD123456 \mysql:5.7docker exec -it c_mysql /bin/bash进入容器 就是打开MySQL了
直接登录 mysql -uroot -p123456
就是亲切地 mysql 操作界面了
Navicat连接数据库 可能会面临很多问题防火墙、权限、端口开放、、、
2、部署redis 1、创建容器 docker run -it --privilegedtrue -uroot --nameredis -p 6379:6379 \ -v /home/redis/data:/data \ -v /home/redis/conf/redis.conf:/etc/redis/redis.conf \ redis:latest /bin/bash 2、启动容器 docker exec -it redis /bin/bash 3、打开服务端 rootd34513b96283:/data# redis-server 4、进入客户端 rootd34513b96283:/data# redis-server 远程连接 还要设置redis.conf 打开6379端口 防火墙 # 允许任何主机连接、访问 bind 127.0.0.1 改为 bind 0.0.0.0 # 关闭保护模式 protected-mode yes 改为 protected-mode no # 允许启动后在后台运行即关闭命令行窗口后仍能运行 daemonize no 改为 daemonize yes 注意配置文件 redis.conf 使用了挂载 -v后面就是宿主机目录 直接操作就行了 可能是空的 该咋设置就咋设置
配置文件修改后要重启docker
第五章、dockerfile 不常用了解即可 dockerfile本质-----是用脚本来制作镜像的工具。 常用命令8条 FROM指定当前镜像的上一个镜像名称和版本COPY拷贝宿主机上的文件到镜像中不解压RUN 在镜像中执行一条linux命令mkdir /home/123ADD拷贝宿主机上的文件到镜像中并且解压缩ENTRYPOINT镜像运行启动后执行的命令不可覆盖CMD镜像运行启动后执行的命令可覆盖ENV设置环境变量EXPOSE镜像运行成容器后自动暴露的端口
例如部署springboot项目 将jar包制作成镜像 直接运行 [rootlocalhost ~]# mkdir docker-files
[rootlocalhost ~]# cd docker-files
[rootlocalhost docker-files]# ll
总用量 0
[rootlocalhost docker-files]# vim centos_dockerfile
//编辑完文件[rootlocalhost docker-files]# docker build -f ./centos_dockerfile -t mycentos:1 .
最终build镜像文件时 -f 指定文件路径 -t指定最终构造的镜像文件名称及版本
好奇 并不是按照/usr 启动而且也并不能使用vim
重新build镜像 又好了 哈 第五章、docker服务编排
Docker Compose--多容器管理工具