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

【Docker】傻瓜式开发

一、Docker下载安装

1.首先执行卸载docker命令(不管之前有没有装过doker卸载一遍总是没错的)

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

 

 2.安装docker的依赖包

sudo yum install -y yum-utils

 3.告诉liunx安装docker从哪里安装

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

 4.安装docker(docker的引擎、操作docker的客户端、docker容器)

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

 5.启动doker服务

sudo systemctl start docker

6.查看docker的版本,也确保一下安装是否成功

docker -v

 7.查看docker里有没有下载的应用镜像

sudo docker images

 8.给docker设置开机自动启动,省得以后每次启动输入启动命令

sudo systemctl enable docker

 9.给docker配置应用镜像下载加速

#创建文件目录
sudo mkdir -p /etc/docker
#配置镜像加速地址
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kru7klna.mirror.aliyuncs.com"]
}
EOF

 

10.重启docker的后台线程

sudo systemctl daemon-reload

11.重启docker服务

sudo systemctl restart docker

二、docker安装mysql

1.使用命令下载

sudo docker pull mysql:5.7

 2.使用命令查看已经下载好的mysql镜像

sudo docker images

 3.启动mysql镜像

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
 
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

4.查看正在运行中的镜像

sudo docker ps

 5.navicat连接测试

6.修改mysql配置

#进入conf
cd /mydata/mysql/conf
#创建my.cnf文件
sudo vi my.cnf
#编辑文件输入配置信息
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

 

7.重启mysql应用新的配置

sudo docker restart mysql

 三、doker安装redis

1.下载redis镜像

docker pull redis

 2.查看已经下载好的redis镜像

docker images

3.创建redis配置文件目录

mkdir -p /mydata/redis/conf

4.进入新创建的redis配置文件目录

cd /mydata/redis/conf

5.创建redis的配置文件

touch redis.conf

6.执行redis的启动命令

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

 7.查看doker中已经启动的镜像

docker ps

 8.修改redis配置文件,使其可以aof持久化

vi redis.conf

 9.重启redis镜像使用新的配置

docker restart redis

 10.连接测试

四、doker安装nginx

1.下载nginx镜像

docker pull nginx

 

2.查看已经下载好的nginx镜像

docker images

 3.创建nginx配置文件

# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html

 4.容器中的nginx.conf文件和conf.d文件夹复制到宿主机

# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/

 

 5.启动doker中的nginx镜像

docker run \
-p 9002:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest

 6.验证nginx是否配置成功

五、docker安装JDK

1.下载JDK8

docker pull java:8

 2.查看镜像

docker images

 六、在docker中运行jar包

1.创建Dockerflie

touch Dockerfile

2.编写Dockerfile文件

#依赖的父镜像
FROM java:8
#作者
MAINTAINER lzw
#jar包添加到镜像中
ADD project.jar project.jar
#容器暴露的端口 即jar程序在容器中运行的端口
EXPOSE 18188
#容器启动之后要执行的命令
ENTRYPOINT ["java","-jar","project.jar"]

3.上传jar包(注意jar包需要和Dockerfile在同级目录)

4.使用当前目录的 Dockerfile 创建镜像,标签为 wgs/product 重点注意后面的点

docker build -t wgs/product .

 

5.运行镜像(前面的18188是访问端口 后面的18188的jar包中server.port=18188)

docker run -d --name myproduct -p 18188:18188  wgs/product

6.查看日志

docker logs myproduct

7.测试是否能正常访问

 总结:整体完成了docker的安装、mysql的安装、nginx的安装、redis的安装、jdk的安装、jar包的发布,可以满足绝大多数应用场景!

相关文章:

  • <数据结构> - 数据结构在算法比赛中的应用(上)
  • python中的函数和类的区别
  • 【计算机网络】UDP/TCP协议
  • python并发编程 多线程/多进程/协程
  • 【web-攻击用户】(9.5)同源策略:与浏览器扩展、HTML5、通过代理服务应用程序跨域
  • 大数据——Spark-SQL自定义函数UDF、UDAF、UDTF
  • 浅浅的 Cmake
  • 【JavaScript 进阶教程】函数的定义 调用 及 this指向问题
  • 14天刷爆LeetCode算法学习计划——Day02双指针(1)
  • 存储过程浅入深出
  • 一零二四、pyspark在jupyter中的完美运行
  • Nginx监控模块
  • mybatis的test坑(不等于‘‘ 且 不等于0)
  • 使用IDEA快速部署到Docker云端
  • 全志T507 UART复用方法-飞凌嵌入式知识库
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Android开源项目规范总结
  • CAP 一致性协议及应用解析
  • Debian下无root权限使用Python访问Oracle
  • exports和module.exports
  • Fundebug计费标准解释:事件数是如何定义的?
  • HomeBrew常规使用教程
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Just for fun——迅速写完快速排序
  • Octave 入门
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • ubuntu 下nginx安装 并支持https协议
  • vue 配置sass、scss全局变量
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 一个项目push到多个远程Git仓库
  • "无招胜有招"nbsp;史上最全的互…
  • (1)Nginx简介和安装教程
  • (175)FPGA门控时钟技术
  • (26)4.7 字符函数和字符串函数
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)球球大作战
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)Linux——Linux常用指令
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (三)终结任务
  • (算法设计与分析)第一章算法概述-习题
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原創) 物件導向與老子思想 (OO)
  • (转)人的集合论——移山之道
  • ******之网络***——物理***
  • *上位机的定义
  • ../depcomp: line 571: exec: g++: not found
  • .libPaths()设置包加载目录
  • .Net 6.0 处理跨域的方式
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net6使用Sejil可视化日志
  • @ModelAttribute 注解
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [C++] sqlite3_get_table 的使用