B站视频地址

3.docker的基本操作

3.1 安装docker

1.下载关于Docker的依赖环境

想安装Docker,需要先将依赖的环境全部下载下来,就像Maven依赖JDK一样

  1. yum -y install yum-utils device-mapper-persistent-data lvm2

2.指定Docker镜像源

默认下载Docker会去国外服务器下载,速度较慢,可以设置为阿里云镜像源,速度更快

  1. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装Docker

  1. yum makecache fast
  2. yum -y install docker-ce

4.启动Docker并测试

  1. 安装成功后,需要手动启动,设置为开机启动,并测试一下 Docker
  2. #启动docker服务
  3. systemctl start docker
  4. #设置开机自动启动
  5. systemctl enable docker
  6. #测试
  7. docker run hello-world

3.2 Docker的中央仓库

  1. 1.Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。
  2. https://hub.docker.com/
  3. 2.国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。
  4. https://c.163yun.com/hub#/home
  5. http://hub.daocloud.io/ (推荐使用)
  6. 3.在公司内部会采用私服的方式拉取镜像(添加配置)
  7. #需要创建 /etc/docker/daemon.json,并添加如下内容
  8. {
  9. "registry-mirrors":["https://registry.docker-cn.com"],
  10. "insecure-registries":["ip:port"]
  11. }
  12. #重启两个服务
  13. systemctl daemon-reload
  14. systemctl restart docker

3.3 镜像的操作

1.拉取镜像

  1. 从中央仓库拉取镜像到本地
  2. docker pull 镜像名称[:tag]
  3. #举个例子:docker pull daocloud.io/library/tomcat:8.5.15-jre8

2.查看本地全部镜像

  1. 查看本地已经安装过的镜像信息,包含标识,名称,版本,更新时间,大小
  2. docker images

3.删除本地镜像

  1. 镜像会占用磁盘空间,可以直接手动删除,标识通过查看获取
  2. docker rmi 镜像的标识

4.镜像的导入导出

  1. 如果因为网络原因可以通过硬盘的方式传输镜像,虽然不规范,但是有效,但是这种方式导出的镜像名称和版本都是null,需要手动修改
  2. #将本地的镜像导出
  3. docker save -o 导出的路径 镜像id
  4. #加载本地的镜像文件
  5. docker load -i 镜像文件
  6. #修改镜像文件
  7. docker tag 镜像id 新镜像名称:版本

3.4容器的操作

1.运行容器

  1. 运行容器需要定制具体镜像,如果镜像不存在,会直接下载
  2. #简单操作
  3. docker run 镜像的标识|镜像的名称[:tag]
  4. #常用的参数
  5. docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
  6. #-d:代表后台运行容器
  7. #-p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
  8. #--name 容器名称:指定容器的名称

2.查看正在运行的容器

  1. 查看全部正在运行的容器信息
  2. docker ps [-qa]
  3. #-a 查看全部的容器,包括没有运行
  4. #-q 只查看容器的标识

3.查看容器日志

  1. 查看容器日志,以查看容器运行的信息
  2. docker logs -f 容器id
  3. #-f:可以滚动查看日志的最后几行

4.进入容器的内部

  1. 可以进入容器的内部进行操作
  2. docker exec -it 容器id bash

5.复制内容到容器

  1. 将宿主机的文件复制到容器内部的指定目录
  2. docker cp 文件名称 容器id:容器内部路径

6.重启&启动&停止&删除容器

  1. 容器的启动,停止,删除等操作,后续会经常使用到
  2. #重新启动容器
  3. docker restart 容器id
  4. #启动停止运行的容器
  5. docker start 容器id
  6. #停止指定的容器(删除容器前,需要先停止容器)
  7. docker stop 容器id
  8. #停止全部容器
  9. docker stop $(docker ps -qa)
  10. #删除指定容器
  11. docker rm 容器id
  12. #删除全部容器
  13. docker rm $(docker ps -qa)

4.Docker应用

1.docker安装tomcat

  1. 运行Tomcat容器,为部署ssm工程做准备
  2. docker run -d -p 8080:8080 --name tomcat daocloud.io/library/tomcat:8.5.15-jre8
  3. #或者已经下载了tomcat镜像
  4. docker run -d -p 8080:8080 --name tomcat 镜像的标识

2.运行MySQL容器

  1. docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4

3.部署ssm工程

ssm.war下载

将上面连接的tar下载下来,解压,在wars目录里面将jpress-web-newest.war重命名为ssm.war就行了

说明:视频里的ssm项目我并没有,照葫芦画瓢只要是个war包就可以。这是Jpress软件包,同样是Java开发的。将war包的名字改一下就行了。

  1. 修改SSM工程环境,设置为LinuxDocker容器的信息
  2. 通过Mavenpackage重新打成war
  3. Windows下的war包复制到Linux
  4. 通过docker命令将宿主机的war包复制到容器内部
  5. docker cp 文件名称 容器id:容器内部路径
  6. 测试访问SSM工程

5.数据卷

为了部署SSM的工程,需要使用到cp的命令将宿主机内的ssm.war文件复制到容器内部。

数据卷:将宿主机的一个目录映射到容器的一个目录中。可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

1.创建数据卷

  1. #创建数据卷后,默认会存放在一个目录下/var/lib/docker/volumes/数据卷名称/_data
  2. docker volume create 数据卷名称

2.查看全部数据卷

  1. #查看全部数据卷信息
  2. docker volume ls

3.查看数据卷详情

  1. #查看数据卷的详细信息,可以查询到存放的路径,创建时间等等
  2. docker volume inspect 数据卷名称

4.删除数据卷

  1. #删除指定的数据卷
  2. docker volume rm 数据卷名称

5.容器映射数据卷

  1. #通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。
  2. docker run -d -p 8080:8080 --name tomcat -v 数据卷名称:容器内部的路径 镜像id
  3. #通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。
  4. docker run -d -p 8080:8080 --name tomcat -v 路径(/root/自己创建的文件夹):容器内部的路径 镜像id

6.Dockerfile自定义镜像

1.Dockerfile

  1. 创建自定义镜像就需要创建一个Dockerfiler,如下为Dockerfile的语言
  2. from:指定当前自定义镜像依赖的环境
  3. copy:将相对路径下的内容复制到自定义镜像中
  4. workdir:声明镜像的默认工作目录
  5. run:执行的命令,可以编写多个
  6. cmd:需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
  7. #示例:
  8. from daocloud.io/library/tomcat:8.5.15-jre8
  9. copy ssm.war /usr/local/tomcat/webapps

2.通过Dockerfile制作镜像

  1. #编写完Dockerfile后需要通过命令将其制作为镜像,并且要在Dockerfile的当前目录下,之后即可在镜像中查看到指定的镜像信息,注意最后的 .
  2. docker build -t 镜像名称[:tag] ./

文章链接

docker学习二的更多相关文章

  1. docker学习(二)

    1 镜像 docker使用联合加载技术,一次同时加载多个文件系统,在外面只能看到一个文件系统 docker使用写时复制,每个只读镜像层都是只读的,也永远不会发生变化,建立一个新容器,会构建一个镜像栈, ...

  2. 【docker学习二】CentOS7.5+Docker 镜像(容器)的使用

    承接上篇:https://mp.csdn.net/postedit/82744127 上文介绍了容器与镜像的基本操作,这里总结下容器的使用. 先在官网找到一个镜像: https://hub.docke ...

  3. Docker学习(二): 镜像的使用与构建

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  4. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  5. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

  6. Docker学习(二)docker镜像操作

    上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...

  7. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  8. SpringCloud学习(二):微服务入门实战项目搭建

    一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...

  9. docker 学习资料收集

    Docker中文网 http://www.docker.org.cn/book/ docker镜像怎么迁移到其他的服务器 http://www.talkwithtrend.com/Question/1 ...

随机推荐

  1. Sentinel限流之快速失败和漏桶算法

    距离上次总结Sentinel的滑动窗口算法已经有些时间了,原本想着一口气将它的core模块全部总结完,但是中间一懒就又松懈下来了,这几天在工作之余又重新整理了一下,在这里做一个学习总结. 上篇滑动窗口 ...

  2. LeetCode-151-中等-翻转字符串里面的单词

    问题描述 给定一个字符串,逐个翻转字符串中的每个单词. 说明: 无空格字符构成一个 单词 . 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括. 如果两个单词间有多余的空格,将反转 ...

  3. Kaggle泰坦尼克-Python(建模完整流程,小白学习用)

    参考Kernels里面评论较高的一篇文章,整理作者解决整个问题的过程,梳理该篇是用以了解到整个完整的建模过程,如何思考问题,处理问题,过程中又为何下那样或者这样的结论等! 最后得分并不是特别高,只是到 ...

  4. docker 创建数据卷容器

    数据卷容器 --volumes-from 容器名/id 先起一个容器 docker run -it --name docker01 centos 然后同步 docker01 的数据卷 --volume ...

  5. kafka安装流程

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 安装前的环境准备 1.由于Kafka是用Scala语言开发的,运行在JVM上,在安装之前需要先安装JDK(省略) 2.kafka依赖zookee ...

  6. oracle优化求生指南脚本记录

    1.查找未使用索引 /* Formatted on 2020/5/12 下午 03:32:39 (QP5 v5.163.1008.3004) */ WITH IN_PLAN_OBJECTS AS (S ...

  7. sap alv grid 中的delete按键问题

    今天发先一个问题,在使用ALV输出的时候,如果有字段设置为可编辑状态,则会在前面出现选择条,并且,当我们选择一行或者多行的时候,可以用键盘上的DELETE键将行删除!呵呵

  8. spring boot项目问题汇总

    spring遇到的问题汇总 有关日志的打印和日志如何使用 在实际项目中,我们的程序都是运行在linux上,有错误时也不能在本地的控制台上直观看到,所有合理打印日志对于程序员迅速定位到错误. 打印日志时 ...

  9. Android 中使用 config.gradle

    各位同学大家好,当然了如果不是同学,那么大家也同好.哈哈. 大家知道config.gradle 是什么吗?我也不知道.开个完笑,其实config.gradle 就是我们为了统一gradle 中的各种配 ...

  10. 学习Java第三天

    方法重载:同一个类,方法名相同,参数不同(个数不同,类型不同,顺序不同),判断是否重载,只看方法名和参数,跟返回值无关. IDEA查看方法源代码:Crtl + 鼠标左键 进制表示 Java数值默认为十 ...