[学习交流] Docker 小结
Posted 黑马程序员成都中心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[学习交流] Docker 小结相关的知识,希望对你有一定的参考价值。
成都黑马线下开班时间: java37期基础班:2020.6.15
java38期基础班:2020.7.10
java39期基础班:2020.7.30
前端10期基础班:2020.7.15
报名六月基础班进班学员还可以抽奖哦,笔记本电脑等你带回家!
|
一、docker的基本概念 1、应用容器: 概念:容器就是存放东西的地方、应用容器就是存储软件的地方 比如:我们可以 把centos。tomcat、jdk 按照到容器上 容器可以模拟出一台迷你的小型计算机一样,帮我们运行这些软件 2、容器和虚拟机的区别 共同点:都是利用虚拟机化的技术,提供软件的独立运行环境。 虚拟机技术:完全的虚拟化出一台计算机(硬件),安装操作系统,安装并运行软件 容器技术:也是一种虚拟化技术,但是它不会虚化硬件和操作内核,它会共用宿主机的OS内核和硬件 容器的优点:启动快、体积小、性能高、迁移方便 虚拟机优点:隔离性强 3、什么是docker docker 是一个开源的、c/s架构的应用容器引擎。是管理容器的一个软件平台,我们可以使用docker将软件 放入容器中,并且可以通过docker来控制容器的启动 停止 创建 删除 docker 的优点 1) 安装部署非常快、体积小、性能高 2) 能够让开发 测试 生产的环境保持一致 3) 缩短软件部署生命周期 4) 和微服务项目非常搭!! 二、docker的安装和启动 安装:参照资源内视频 检查: docker -v //简单的查看版本信息 docker version // 查看版本详细信息 docker info // 查看docker 的概要信息 启动: systemctl status docker // docker的状态 systemctl start docker // 启动docker systemctl stop docker // 停止docker systemctl restart docker // 重启docker systemctl enable docker // 开机运行docker 三、docker的组件 镜像(image) 镜像的本质是一些特殊文件,提供了容器运行时所必须的资源 容器(container) 容器是根据镜像创建出来的可运行实例,可以通过docker命令控制 它的创建 启动 停止 销毁 注册中心(registry) 存储镜像的地方,像我们maven中使用中央仓库。 中央仓库是存储jar包的 注册中心是存储镜像的 公有:比如:官方提供的注册中心 DockerHub (默认) 私有:比如:企业内部搭建的私人服务器注册中心 四、docker的基本操作 image 镜像的操作 1)查看镜像 // 查看所有镜像 docker images REPOSITORY 仓库 TAG 标签 IMAGE ID 镜像ID // 查询出所有镜像 只显示ID docker images -q 2)搜索镜像 docker search 关键字的名称 // 去注册中心 搜索名字中 包含centos的所有镜像 docker search centos 3)拉取镜像 // http://docker.io/ centos:latest docker pull 注册中心/仓库名:标签 // 使用默认的注册中心 docker pull 仓库名:标签 // 默认下载 最新版本 docker pull 仓库名 4)删除镜像 docker rmi 镜像的名称:标签 docker rmi 镜像的ID //全部删除 docker rmi `docker images -q` container 容器操作 1)查看容器 // 查看运行中的容器 docker ps // 查看所有容器 docker ps -a 2)*创建容器 docker run [选项] 镜像:标记 [命令] 常用选项: -i : 代表容器创建完毕后,会直接运行 --name : 给容器起名称 -d : 让容器在后台运行(守护式容器) -t : 启动容器后,进入到容器内部 (交互式容器) -v : 设置宿主机和容器的目录映射 -p : 设置宿主机和容器的端口映射 交互式容器: // 创建 立即运行 进入容器内部 docker run -it --name=mycentos centos /bin/bash // 进入到容器内部之后 通过exit命令退出 exit 当我们使用exit退出脚本之后,容器会关闭 守护式容器: docker run -id --name=mycentos2 centos // 使用这个命令会立即进入到mycentos2容器中 docker exec -it mycentos2 /bin/bash // 守护式容器 调用exit时, 不会关闭容器 3)停止、启动、删除 // 停止容器 docker stop 容器名称或容器ID // 启动容器 docker start 容器名称或容器ID // 删除容器 不能删除启动的容器 docker rm 容器名称或容器ID // 强制删除 docker rm -f 容器名称或容器ID // 重启容器 docker restart 容器名称或容器I // 容器的暂停与恢复 docker pause 容器名称或容器ID docker unpause 容器名称或容器ID 4) 文件拷贝 // 将宿主机的文件 拷贝到 容器 的容器目录 docker cp 宿主文件目录 容器名称:容器目录 // 容器中的文件 拷贝到 宿主机的目录上边 docker cp 容器名称:容器目录 宿主文件目录 5)创建容器目录挂载 docker run -id -v 宿主机的目录:容器的目录地址 --name=容器名字 镜像:标签 6)删除容器 docker rm 容器的名称或容器的ID // 强制删除 docker rm -f 容器的名称或容器的ID // 删除全部容器 docker rm `docker ps -a -q`
五、实战应用部署 mysql的部署: 步骤: 1) 搜索镜像 docker search mysql 2) 拉取镜像 docker pull centos/mysql-57-centos7 3) 创建并运行容器 docker run -id --name=mysql2 -p 9001:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7 4) 管理容器 docker stop mysql2 docker start mysql2 tomcat的部署 步骤: 1) 搜索镜像 docker search tomcat 2) 拉取镜像 docker pull tomcat 3) 创建并运行容器 // 创建容器 设置目录挂载 docker run -id --name=mytomcat -p 9003:8080 -v /usr/local/mytomcat:/usr/local/tomcat/webapps tomcat 4) 管理容器 // 我们只需要把要部署的项目 放到虚拟机的/usr/local/mytomcat目录下 就完成了部署 nginx的部署 步骤: 1) 搜索镜像 docker search nginx 2) 拉取镜像 docker pull nginx 3) 创建并运行容器 // 创建容器 设置目录挂载 docker run -id --name=mynginx -p 9004:80 nginx 4) 管理容器 // 我们只需要把要部署的项目 放到虚拟机的/usr/share/nginx/html目录下 就完成了部署 // 将准备好的静态页面 上传到linux服务器 docker cp ./shop mynginx:/usr/share/nginx/html redis的部署 步骤: 1) 搜索镜像 docker search redis 2) 拉取镜像 docker pull redis 3) 创建并运行容器 // 创建容器 设置目录挂载 docker run -id --name=myredis -p 9005:6379 redis 4) 管理容器 六、 备份与迁移 将容器保存为新的镜像 docker commit 容器的名称 仓库名称:标记 镜像的备份 docker save -o 文件名称.tar 仓库名称:标记 镜像的加载 docker load -i 文件名称.tar 七、通过Dockerfile构建镜像 概念:Dockerfile是一个脚本文件,我们可以在这个脚本文件里面定义构建镜像的命令和参数 通过执行这个脚本文件,可以构建一个新的镜像 小练习:使用Dockerfile脚本文件,在centos镜像的基础上 安装jdk在打包新镜像 1. 1.8jdk上传到服务器 2. 使用mkdir 创建 centosjdk 并进入 3. vi创建Dockerfile并进入编辑页面 4. 编辑如下命令: # 设置基础镜像 FROM centos # 创建者名称 MAINTAINER Mr.chen # 设置工作目录,用户进入到容器时,会直接进入这个目录 WORKDIR /usr # 创建存放java文件的目录 RUN mkdir /usr/local/java # 将宿主机的安装包 拷贝到容器 ADD jdk-8u161-linux-x64.tar.gz /usr/local/java # 配置环境变量 ENV JAVA_HOME /usr/local/java/jdk1.8.0_161 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH 5. 构建的命令 docker build -t 镜像名称 文件夹目录地址
八、搭建私有的registry注册中心 概念:是存储镜像仓库的地方,我们可以在注册中心下载需要的镜像,也可以把镜像推送到注册中心 搭建私有注册中心 1. 下载注册中心服务的镜像 docker pull registry 2. 创建注册中心容器 启动 docker run -id -p 5000:5000 --name=myregistry registry 3. 检查注册中心有没有搭建成功 http://192.168.18.131:5000/v2/_catalog 上传镜像到注册中心 1. 设置docker信任注册中心的地址 vi /etc/docker/daemon.json "insecure-registries":["192.168.18.131:5000"] 2. 重启docker 重启 注册中心 systemctl restart docker docker start myregistry 3. 将要上传的镜像,更改一下tag,代表这个镜像是要上传私人注册中心 docker tag centosjdk8 注册中心/仓库名:标记 docker tag centosjdk8 192.168.18.128:5000/centosjdk8:1.0.0 4. 上传镜像到注册中心 docker push 192.168.18.128:5000/centosjdk8:1.0.0 5. 检查注册中心有没有推送成功 http://192.168.18.131:5000/v2/_catalog 刷新网址,仓库列表有没有我们上传的镜像 |
|
|
以上是关于[学习交流] Docker 小结的主要内容,如果未能解决你的问题,请参考以下文章
Docker镜像原理学习理解
Docker 镜像小结 - 每天5分钟玩转 Docker 容器技术(21)
Docker 镜像小结 - 每天5分钟玩转 Docker 容器技术(21)
TensorFlow 学习小结 - 开发环境在虚拟机里安装
javascript 学习小结 by FungLeo
springmvc学习笔记-入门程序小结