zoukankan      html  css  js  c++  java
  • Docker基础使用

    Docker笔记1.0

    一、Docker核心概念

    1. Docker主机:安装了Docker程序的机器(本地系统WIN、远程服务器);
    2. Docker客户端:连接Docker主机进行操作;
    3. Docker仓库:用来保存各种打包好的软件镜像;
    4. Docker镜像:软件打包成的镜像,放在仓库中;
    5. Docker容器:镜像启动后的实例称为一个容器,一个镜像对应一个容器;

    使用Docker的步骤:

    1. 安装Docker;
    2. 去Docker仓库安装镜像;
    3. 使用Docker运行镜像,生成Docker容器;
    4. 控制容器的启动和停止即可;

    二、安装Doctor

    1、安装Linux虚拟机

    1. VMWare
    2. VirtualBox

    2、VirtualBox安装

    next->next->next...

    3、下载阿里的Centos镜像

    链接:http://mirrors.aliyun.com/centos/8.3.2011/isos/x86_64/

    选择CentOS-8.3.2011-x86_64-dvd1.iso下载

    4、VirtualBox安装Centos镜像

    1. 新建虚拟电脑,名称随便填,类型Linux,版本选择Other Linux (64-bit),下一步;

    2. 分配内存,看着给,下一步;

    3. 选择现在创建虚拟硬盘,下一步;

    4. 默认,下一步;

    5. 默认,下一步;

    6. 虚拟硬盘的存放位置和硬盘大小,位置放在空间大的磁盘,大小就用推荐的8GB,点击创建;

    7. 找到刚创建好的虚拟电脑,右键设置;

    8. 选择网络,设置连接方式为桥接网卡;

    9. 点击存储,右侧属性,点击光盘图标,找到下载好的Centos.ios,点击ok;

    10. 启动虚拟机,选择第一个,等待...

    11. 拉到最底下,选择中文;

    12. 点击安装位置,点击完成;

    13. 点击根密码,设置密码123456,完成;

    14. 点击网络和主机名,点击开启,完成;

    15. 开始安装;

    16. Contos8关闭和开启图形管理界面

    关闭
    init 3
    开启
    init 5

    5、xsheel连接Linux

    1. 查看ip地址

    ip addr

    2. xsheel设置连接

    6、Linux上装Docker

    1. 查看Centos版本,Docker要求Centos系统的内核版本高于3.10

    uname -r

    2. 安装Docker

    yum install docker

    3. 启动Docker

    Centos8使用此命令会报错,因为它自带docker,不用启动和关闭
    systemctl start docker

    4. Docker版本

    podman -v

    7、Docker安装镜像

    Centos8使用podman命令替代docker

    1、Docker安装镜像步骤(以tomcat为例)

    1. 搜索tomcat镜像

    podman search tomcat

    2. 拉取tomcat镜像

    tg代表版本号,不写默认拉取最新版latest
    podman pull tomcat:tg

    3. 查看已安装的所有镜像

    podman images

    4. 删除指定的镜像

    podman rmi images-id(镜像id)

    2、Docker容器操作(以tomcat为例)

    1. 生成tomcat容器(生成后会自动运行)

    podman run --name mytomcat -d tomcat:latest
    --name:自定义容器名称
    -d:后台运行

    2. 查看运行中的容器

    podman ps

    3. 查看所有容器(包括未运行的)

    podman ps -a

    4. 停止运行中的容器

    podman stop 容器id或者容器名称(自定义的)

    5. 重新启动容器

    podman restart 容器id

    6. 删除容器

    podman rm 容器id

    7. 容器端口映射

    重新生成tomcat容器,因为上面生成的容器无法在外部访问
    podman run --name mytomcat -p 8888:8080 -d tomcat:latest
    -p:将主机端口映射到容器的端口 主机端口:容器端口

    8. 解决docker访问tomcat端口显示404问题

      1. 查看防火墙是否开启

      service firewalld status

      2. 关闭防火墙

      systemctl stop firewalld.service

      3. 禁止防火墙开机自启

      systemctl disable firewalld.service

      4. 进入tomcat容器目录

      podman exec -it 容器id /bin/bash

      5. 输入ls查看是否存在webapps目录

      6. 删除webapps目录

      rm -rf webapps

      7. 在本目录解压webapps.dist

      cp -r webapps.dist webapps

      9. 查看容器启动日志

      podman logs 容器id

    9.解决:Error response from daemon: Cannot restart container xxx: driver failed programming external

      重启 docker 服务

      systemctl restart docker

    3.Docker安装mysql

    具体安装镜像就不说了,按照上面安装tomcat操作就行...

    1. Docker生成mysql容器

    podman run --name mysql001 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
    -e:mysql密码

    2. 关于使用navicat连接报错问题

    Centos8对于mysql密码加密规则与之前版本的不一样,所有需要做一些修改

    1. 运行mysql容器

    podman start 容器id

    2. 进入mysql容器目录

    podman exec -it 容器id bash

    3. 打开mysql

    mysql -uroot -p123456
    注意-p没有空格

    4. 修改密码规则和重置密码

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'

    5. 刷新权限,重新使用navicat连接

    FLUSH PRIVLEGES

    三、Docker遇到的错误及解决方案

    1、Docker容器端口映射报错

    报错:docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp

    解决方案:重启docker即可

    systemctl restart docker

    2、Docker拉取镜像很慢的问题

    使用阿里云镜像加速

    [root@localhost ~]# mkdir -p /etc/docker
    [root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
    }
    EOF
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl restart docker

    四、Docker部署SpringBoot项目

    1、生成jar包

      打开IDE,找到右边的maven->项目名->Lifecycle->package,双击package会自动将项目打包好,文件路径就在项目target文件夹下

    2、编写Dockerfile文件

    # Docker image for springboot file run
    # VERSION 0.0.1
    # Author: pibigstar
    # 基础镜像使用java 根据自己的环境更换
    FROM openjdk:11.0.9
    # 作者 随便写
    MAINTAINER LTTLJK <3272252730@qq.com>
    # VOLUME 指定了临时文件目录为/tmp。
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp
    # 将jar包添加到容器中并更名为demo1.jar 更名随便换,但与下面的要保持一致
    ADD demo-0.0.1-SNAPSHOT.jar demo1.jar
    # 运行jar包
    RUN bash -c 'touch /demo1.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo1.jar"]

    3、生成Docker镜像,启动容器

      1. 将打包好的jar包和Dockerfile文件上传到服务器上

      Linux上传文件rz

        #安装依赖包
        yum install -y lrzsz
        #上传文件 不能上传文件夹
        rz -y #打开文件选择窗口 选择jar包和Dockkerfile
        #下载  扩展...
        sz 文件名

      2. 生成镜像

        #-t表示别名 注意后面有个点
        docker build -t demo1 .

      3. 启动容器并配置好端口

        docker run -d -p 8081:8080 demo1

      4. 通过访问ip测试是否启动成功

  • 相关阅读:
    tyvj1117 拯救ice-cream
    codevs3410 别墅房间
    codevs1099 字串变换
    codevs1226 倒水问题
    codevs2449 骑士精神
    codevs1225 八数码难题
    Wikioi 3776 生活大爆炸版石头剪子布
    codevs1197 Vigenère密码
    枚举 + exgcd
    C++ 排序引用的优化
  • 原文地址:https://www.cnblogs.com/ljkltt/p/14225168.html
Copyright © 2011-2022 走看看