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

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: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- hm-nethmall:build:context: .dockerfile: Dockerfilecontainer_name: hmallports:- "8080:8080"networks:- hm-netdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/usr/share/nginx/html"depends_on:- hmallnetworks:- hm-net
networks:hm-net:name: hmall


http://www.mrgr.cn/news/66668.html

相关文章:

  • FPGA实现以太网(一)、以太网基础知识
  • Vue3-子传父
  • D. Searchlights
  • 不知不觉我开发的 vim 插件居然超过 20 个了
  • SEO
  • 2024 Rust现代实用教程 closures闭包
  • css 文字一行没有放满不进行换行
  • 【JAVA高级编程-JavaWeb】作业5
  • 【GESP】C++一级真题练习(202306)luogu-B3839,累计相加
  • 数据结构与算法——Java实现 54.力扣1008题——前序遍历构造二叉搜索树
  • 【Windows】让你的磁盘更健康!Windows `chkdsk`命令使用全指南
  • 【算法】【优选算法】滑动窗口(上)
  • java: 无法访问org.springframework.web.bind.annotation.RequestMapping
  • Centos Linux 7 搭建邮件服务器(postfix + dovecot)
  • 【JavaEE】认识进程
  • C#-MemoryMarshal
  • (十三)JavaWeb后端开发——MySQL2
  • 微控制器(MCU)如何运行存储在Flash的程序???
  • 基于python构造电影neo4j知识图谱
  • MongoDB基础介绍以及从0~1语法介绍
  • WEB:如何优化大数据菜单展示的攻略指南
  • 平衡的二叉搜索树 —— AVL树
  • 基于java+SpringBoot+Vue的旅游管理系统设计与实现
  • 小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统
  • 【JAVA】Java基础—基础语法:控制结构(条件语句、循环结构)
  • 省级-财政分权数据(2000-2022年)