当前位置: 首页 > 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.lryc.cn/news/479058.html

相关文章:

  • HC-SR04超声波传感器详解(STM32)
  • 如何在BSV区块链上实现可验证AI
  • Python快速安装软件包到环境的方案
  • npm入门教程17:准备发布的npm包
  • 协程1 --- 发展历史
  • VBA10-处理Excel的动态数据区域
  • 【git】使用记录
  • 代码随想录算法训练营第三十八天|Day38 动态规划
  • 使用C++和libcurl库实现HTTP请求(GET、POST、文件上传)
  • makefile例子
  • 用环形数组实现队列(多种高级方法,由浅入深)
  • springboot框架使用RabbitMQ举例代码
  • Java实现一个延时队列
  • 为什么说vue是双向数据流
  • 创造属于你的 Claude Prompt 和个性化 SVG 卡片|对李继刚老师提示词的浅浅解析与总结
  • redis与本地缓存
  • git撤销commit和add
  • 【361】基于springboot的招生宣传管理系统
  • 【一些关于Python的信息和帮助】
  • creo toolkit二次开发学习之程序集(ProAsmcomp)和装配体组件路径对象(ProAsmcomppath)
  • 深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架
  • 外包干了三年,精神严重内耗...
  • ruoyi-vue集成tianai-captcha验证码
  • Django安装
  • Ubuntu 20.04 安装 QGC v4.3 开发环境
  • WPF+MVVM案例实战(二十一)- 制作一个侧边弹窗栏(AB类)
  • linux中怎样登录mysql数据库
  • 深入理解 Linux 内存管理:free 命令详解
  • 指针万字超级最强i解析与总结!!!!!
  • 告别生硬电子音,这款TTS软件让语音转换更自然动听