大数据之Docker学习笔记

这篇具有很好参考价值的文章主要介绍了大数据之Docker学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装Docker

1.先卸载旧版

 yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine

2.配置Docker的yum库

首先要安装一个yum工具

 yum install -y yum-utils

安装成功后,执行命令,配置Docker的yum源:

 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

最后,执行命令,安装Docker

 yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置开机自启和启动Docker

 # 设置开机自启 
 systemctl enable docker
 # 启动Docker 
 systemctl start docker

命名别名

Docker的有些命令特别复杂,我们可以给它设置别名简化输入,就不用每次都输入那么多了.

1.进入 .bashrc 中修改配置( .bashrc 是 root 下的隐藏文件)

 vim ~/.bashrc

大数据之Docker学习笔记,大数据,docker,学习

2.source一下,让这个文件生效.

 source ~/.bashrc

常用命令

新建容器并启动

注意: docker,容器使用后台运行,就必须有一个前台进程,docker发现没有应用,就会自动停止

 docker run [可选参数] image
 ​
 # 参数说明
 --name="Name"       容器名字
 -d                  后台方式运行
 -it                 使用交互方式运行,进入容器查看内容
 -p                  指定容器的端口 
     -p  ip:主机端口:容器端口
     -p  主机端口:容器端口(常用)
     -p  容器端口
 -P                  随机指定端口
查看容器中的进程信息
 docker top 容器id

大数据之Docker学习笔记,大数据,docker,学习

查看镜像的元数据
 docker inspect 容器id

大数据之Docker学习笔记,大数据,docker,学习

进入当前正在运行的容器

方法1:

进入容器后开启一个新的终端,可以在里面操作(常用)

 docker exec -it 容器id /bin/bash

大数据之Docker学习笔记,大数据,docker,学习

方法2:

进入容器正在执行的终端,不会启动新的进程.

 docker attach 容器id

大数据之Docker学习笔记,大数据,docker,学习

从容器内拷贝文件到主机上
 docker cp 容器id:/容器中的文件路径 /主机的路径

大数据之Docker学习笔记,大数据,docker,学习

容器数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。 为了能保存数据在Docker中使用卷。

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

使用数据卷

直接使用命令来挂载 -v,这样之后主机的这个目录跟容器内的这个目录是绑定的,文件不管是容器内的还是主机上的进行修改后,对应的容器或者是主机目录的目录也会改变.

 docker run -it -v 主机目录:容器内目录
查看容器对应元数据

可以在Mounts节点查看建立的数据卷信息。

 docker inspect 容器id

安装MySQL

即使最后我们将docker rm mysql,删除了mysql的这个images,本地绑定的数据也不会丢失.

1.获取镜像

 docker pull mysql:5.7

2.运行容器进行挂载

安装启动mysql,需要配置密码.启动

-d 后台运行 -p 端口映射 -v 卷挂载 –name 容器名字

 [root@hadoop102 ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

大数据之Docker学习笔记,大数据,docker,学习

具名和匿名挂载

匿名挂载

-v 容器内路径

 [root@hadoop102 data]# docker run -d -P --name nginx02 -v /etc/nginx nginx
查看本地所有的镜像
 [root@hadoop102 data]# docker volume ls

这里查看到一长串的就是匿名挂载,因为我们在-v的时候只写了容器内的路径,没有写容器外的路径.

大数据之Docker学习笔记,大数据,docker,学习
具名挂载

通过-v, 卷名:容器内路径,大多数情况下使用具名挂载.

所有没有指定目录的情况下都是在/var/lib/docker/volume/xxx/_data目录下

 [root@hadoop102 data]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx nginx
如何确定是具名挂载还是匿名挂载,还是指定路径挂载
 -v  容器内路径               # 匿名挂载
 -v  卷名:容器内路径           # 具名挂载
 -v  /宿主机路径::容器内路径    # 指定路径挂载

Dockerfile

Dockerfile就是构建docker镜像的构建文件,命令脚本.

1.创建一个dockerfile文件

名字可以随机,建议Dockerfile

这个挂载了两个目录.这里的每一个命令就是镜像的一层.

文件中的内容:

大数据之Docker学习笔记,大数据,docker,学习

构建docker镜像
 docker build -f /home/docker-test-volume/doc

大数据之Docker学习笔记,大数据,docker,学习

数据卷容器

容器数据共享

docker02是继承docker01的数据的,docker01创建的内容会同步到docker02上.

—volumes-from相当于Java中的继承,继承了docker01,只要通过这个就可以实现容器间的数据共享.

容器之间配置信息的传递,容器卷容器的生命周期一直持续到没有容器使用就结束了.

但是如果持久化本地,本地的数据是不会删除的.

 [root@hadoop102 ~]# docker run -it --name docker01 hcq/centos:1.0
 [root@hadoop102 ~]# docker run -it --name docker02 --volumes-from docker01 hcq/centos:1.0


大数据之Docker学习笔记,大数据,docker,学习

DockerFile

Dockerfile就是构建docker镜像的构建文件,命令脚本.

构建步骤:
  1. 编写一个dockerfile文件

  2. Docker build构建成为一个镜像

  3. docker run 运行镜像

  4. docker push 发布镜像(DockerHub,阿里云镜像仓库)

Dockerfile的指令
 FROM            # 基础镜像,一切都是从这里开始
 MAINTAINER      # 镜像是谁写的,姓名+邮箱
 RUN             # 镜像构建的时候需要运行的指令
 ADD             # 步骤:tomcat镜像,这个tomcat压缩包,添加内容
 WORKDIR         # 镜像的工作目录
 VOLUME          # 挂载的目录
 EXPOSE          # 保留端口配置
 CMD             # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
 ENTRYPOINT      # 指定这个容器启动的时候要运行的命令,可以追加命令
 ONBUUILD        # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD 的指令,触发指令
 COPY            # 类似ADD,将我们文件拷贝到镜像中
 ENV             # 构建的时候设置环境变量
创建一个自己的centos

1.编写Dockerfile文件

大数据之Docker学习笔记,大数据,docker,学习

2.通过这个文件构建镜像

命令 docker build -f dockerfile文件路径 -t 镜像名:[tag]

大数据之Docker学习笔记,大数据,docker,学习

CMD 和 ENTRYPOINT 的区别

docker run后面的参数会将CMD指定的参数进行覆盖。

ENTRYPOINT与CMD的区别是不可以被docker run 后的参数覆盖,会把docker run后面的参数传递给ENTRYPOINT指定的参数。

 CMD             # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
 ENTRYPOINT      # 指定这个容器启动的时候要运行的命令,可以追加命令

发布自己的镜像

1.在服务器上登录

 [root@hadoop102 hcq]# docker login -u sooso

大数据之Docker学习笔记,大数据,docker,学习

2.登录完毕后就可以提交镜像了docker push

注意:这里需要先将这里的文件使用tag打一个标签,然后再使用push推送,否则会出现权限不够的情况.

大数据之Docker学习笔记,大数据,docker,学习

遇到的问题

CentOS 执行yum命令报错【错误:为仓库 ‘appstream‘ 下载元数据失败: ...】

CentOS 执行yum命令报错【错误:为仓库 ‘appstream‘ 下载元数据失败: ...】-CSDN博客

原因: 是因为centos版本是centos8,所以yum在线安装这些的时候需要配置yum源.

大数据之Docker学习笔记,大数据,docker,学习

解决方法:

将源文件FROM 后面的基础centos系统的标签tag加上7

 FROM centos:7

大数据之Docker学习笔记,大数据,docker,学习

Docker网络

清空环境

删除所有容器和镜像

 [root@hadoop102 ~]# docker rm -f $(docker ps -aq)
 [root@hadoop102 ~]# docker rmi -f $(docker images -aq)

大数据之Docker学习笔记,大数据,docker,学习

原理

我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会有一个网卡 docker0桥接模式,使用的技术是evth-pair技术.每次启动一个docker容器都会就会多一对网卡.

大数据之Docker学习笔记,大数据,docker,学习

- -link

这里无法识别这里的tomcat01或者是服务名不认识.但是已经开始不建议使用–link了而是使用自定义网络.

大数据之Docker学习笔记,大数据,docker,学习

这里使用–link进行绑定tomcat02的网络

这里的原理是因为在/etc/hosts中tomcat03后面绑定转发的是tomcat02

大数据之Docker学习笔记,大数据,docker,学习

自定义网络

查看所有的docker网络
 [root@hadoop102 ~]# docker network ls
创建一个自定义网络

--driver bridge 桥接网络

--subnet 192.168.0.0/16 子网地址

--gateway 192.168.0.1 网关地址

 [root@hadoop102 ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

大数据之Docker学习笔记,大数据,docker,学习

connect网络连通

让mynet网络连接上tomcat01,联通之后就是将tomcat01网络放在mynet网络下.

 [root@hadoop102 ~]# docker network connect mynet tomcat01

使用[root@hadoop102 ~]# docker network inspect mynet 命令查看mynet网络发现下面多了一个tomcat01.

大数据之Docker学习笔记,大数据,docker,学习

遇到的问题

OCI runtime exec failed: exec failed: unable to start container process: exec: "ip": executable file not found in $PATH: unknown

大数据之Docker学习笔记,大数据,docker,学习

先进入容器内

 [root@hadoop102 ~]# docker exec -it tomcat01 /bin/bash

更新apt并安装iproute2

 root@97ac2452db22:/usr/local/tomcat# apt update && apt install -y iproute2

退出容器重新执行

 docker exec -it ip addr

大数据之Docker学习笔记,大数据,docker,学习文章来源地址https://www.toymoban.com/news/detail-769116.html

到了这里,关于大数据之Docker学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker 学习笔记】Docker架构及三要素

    Docker 是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0协议开源; Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 1. Docker 客户端和服务器 Docker 是客户-服务器( C/S )架构的程序。

    2024年02月15日
    浏览(37)
  • Docker Dockerfile Docker-compose学习笔记

    Docker目前支持Centos7及以后的版本。64位操作系统,内核版本至少为3.10 安装软件源,以及devicemapper存储类型 添加Docker yum源 安装Docker 启动Docker 测试是否能获取镜像 查看获取的镜像 生效配置信息 安装Docker需要保证你的电脑开启虚拟化 进入任务管理器→点击性能→看一下CPU是

    2024年02月12日
    浏览(46)
  • Git && Docker 学习笔记

    注意:该文章摘抄之百度,仅当做学习笔记供小白使用,若侵权请联系删除! 目录 列举工作中常用的几个git命令? 提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的? git的4个区域及转换 如果代码出现bug,你们是如何解决的? git rebase的作用? 列举工作中常用的

    2024年01月23日
    浏览(38)
  • Docker学习笔记27

    docker_swarm发布服务挂载本地卷: 存储卷应用: 持久化存储应用:(最大的一个需求点) 本地卷: --replicas: 副本越多,说明服务越稳定。一个容器掉了,我还有其他容器。 --mount: 把我们的数据保存在本地。 我们只创建了一个副本:我们通过docker service ps cnginxsvc命令检查在

    2024年02月13日
    浏览(22)
  • Docker学习笔记9

    容器使用Docker Host做数据存储: 容器来做数据的存储。清除了容器,保存在容器的数据就会丢失,所以容器不适合做数据的持久化。 -v --volume list:  Bind Mount a volume 绑定挂载一个卷。 把数据保存到真实机上,就能做到持久化。 第一步:在容器主机上创建用于存储目录: 第二

    2024年02月11日
    浏览(19)
  • Docker学习笔记21

    案例三:使用容器运行一个wordpress应用:         语言开发环境(PHP)         数据库 第一步:创建一个工程目录: 第二步:创建一个docker-compose.yaml文件: 我们再理解下depends_on: 这个是依赖的意思。 --links:容器的互联,是一种让多个容器中的应用进行快速交互的方式,

    2024年02月13日
    浏览(48)
  • Docker学习笔记23

    Docker Swarm架构:         Swarm中以集群(Cluster)为单位进行管理,支持服务层面的操作。         集群是Swarm所管理的对象。 基本概念: 节点(Node)为Swarm集群中的一个Docker Engine实例。其中管理节点(Manage Node)负责Swarm集群管理并向工作节点分配任务。工作节点(Work No

    2024年02月12日
    浏览(38)
  • Docker学习笔记24

    Docker Swarm 搭建: 主机名 系统版本 IP地址 功能 swarm-1 centos7.9 192.168.17.10 管理节点 swarm-2 centos7.9 192.168.17.20 工作节点 swarm-3 centos7.9 192.168.17.30 工作节点 CPU、Memory、Disk不做要求。 准备IP地址和主机名: ntp: 关闭防火墙: 关闭SELinux:  如果第一次配置,需要重启系统。 虚拟机

    2024年02月12日
    浏览(37)
  • Docker学习笔记10

    容器时间同步 :同步容器与docker host时间: 在容器外执行容器内的命令 : 运行ip a命令,检查IP地址相关信息:  容器之间的互连:(--link) Web和调度器LVS之间的关系。Web是被依赖容器,LVS是依赖容器。 MySQL是被依赖的容器,Web是依赖容器。 容器的编排就是依赖与被依赖的

    2024年02月11日
    浏览(10)
  • Docker学习笔记4

    使用docker管理容器: 理解下容器、镜像、仓库、docker daemon和docker client三者之间的关系: 总结: 1)docker客户端下达命令docker daemon。 2)docker daemon 先到本地镜像目录查找容器,如果没有,则到镜像仓库下载镜像到本地,然后在通过这个镜像启动容器。 3)docker daemon借助于镜

    2024年02月11日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包