当前位置: 首页 > article >正文

Docker学习—Docker的安装与使用

Docker安装

1.卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

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://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包:yum makecache fast

3.安装Docker

最后,执行命令,安装Docker

yum install docker-ce docker-ce-cli containerd.io

4.启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps


进入容器:docker exec -it b28289c7c5e1  /bin/bash

5.配置镜像加速器

Docker使用

安装mysql

docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=Mm502986 \ mysql

重启和设置自启动

sudo docker restart mysql

sudo docker update mysql --restart=always

然后就可以连接数据库了!

常见命令

进入容器:docker exec -it mysql bash

数据卷

所以只需要修改宿主机的文件,容器内的文件就可以改变。宿主文件位置是固定不变的。

例子:

创建容器是挂载 容器内的目录

然后通过inspect查看数据卷,可以看到对应的宿主目录

修改主目录的文件,即可以修改对应的容器文件。

指定本地目录挂载:

自定义镜像

即把自己的java应用,定义成镜像部署到docker容器中。

镜像结构是分层的,有一些已经拉取过的基础镜像就不用拉取了,节省空间。

镜像文件:

这些指令不需要记,能看懂就行

直接把所有的都基于别人的基础镜像

创建镜像:

实例:

Dockerfile文件:

把domo文件和jdk基础镜像都上传好:

加载底层基础镜像:

创建容器镜像

运行我们的应用镜像:

然后浏览器访问成功:

网络

让容器在同一个网络中,这样就可以相互访问

创建一个网络

把mysql容器加入到这个网络中:

此时mysql有两个网络,一个是默认的

创建容器的时候就加入网络:

部署Java应用

1、项目打包

2、把jar包和Dockerfile一起放到虚拟机中

3、创建镜像

4、启动应用

docker run -d --name hm -p 8080:8080 --network heima hmall

部署前端

1、把静态资源和配置文件上传服务器

2、创建nginx容器并完成挂载

注意后端应用、nginx和mysql这三个容器都要在一个网络

DockerCompose

前面的步骤,需要自己一个一个的部署,比较麻烦

能够自动创建应用和运行

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build:
       context: .
       dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall


http://www.kler.cn/a/383537.html

相关文章:

  • k8s图形化显示(KRM)
  • vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么区别
  • GESP4级考试语法知识(算法概论(三))
  • 【MySQL】深度学习与解析 : 库的操作知识整合
  • spring-boot(整合aop)
  • 【d63】【Java】【力扣】141.训练计划III
  • 串联电抗器电感量误差较大的原因
  • chrome浏览器network控制台使用和功能介绍
  • C#/.NET/.NET Core优秀项目和框架2024年10月简报
  • 【简信CRM-注册安全分析报告】
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十一)SpringBoot 定时任务@Scheduled
  • T507 buildroot linux4.9之RLT8211F 1000M以太网开发调试
  • 【Android】Gradle 7.0+ 渠道打包配置
  • 插值字符串以$开头,并在大括号{}中可以直接插入变量和表达式
  • dockerfile/docker-compose构建镜像上下文目录编写要点
  • 华为HCIP —— QinQ技术实验配置
  • 【论文笔记】Attention Prompting on Image for Large Vision-Language Models
  • 【赵渝强老师】安装部署Memcached
  • 全双工通信协议WebSocket——使用WebSocket实现智能学习助手/聊天室功能
  • DAY56 ||99.岛屿数量 深搜 |99.岛屿数量 广搜 |100.岛屿的最大面积
  • Android 项目模型配置管理
  • 《无线重构世界》射频模组演进
  • Spring AI 核心概念
  • 数据结构和算法-01背包问题01-认识01背包
  • SpringBoot健身房管理:现代化技术解决方案
  • 如何使用闲置硬件搭建一个安装运行资源较少的Tipask问答网站服务器