Docker 练习2 安装MySQL

news2024/9/23 12:29:58

一、实验要求

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。
2、安装搭建私有仓库 Harbor
3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下:
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。
4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:
(1)基于centos:6基础镜像;
(2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口;
(5)设置服务自启动。
(6)验证镜像。

二、实验步骤

1.使用mysql:5.6和 owncloud 镜像,构建一个个人网盘
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# docker pull mysql:5.6
[root@localhost ~]# docker pull owncloud
[root@localhost ~]# docker run -d --name db --env MYSQL_ROOT_PASSWORD=123456 mysql:5.6
[root@localhost ~]# docker run -d --name owncloud -p 80:80 --link db:db owncloud

1.1 在浏览器中输入网盘服务器的IP地址,进行账号注册

 1.2 注册完成,登录账号

 1.3 登录成功,并上传测试文件

 1.4 查看上传成功的文件

2.安装搭建私有仓库 Harbor
2.1 上传Harbor离线安装包
[root@localhost ~]# ll
[root@localhost ~]# tar xf harbor-offline-installer-v2.4.1.tgz
[root@localhost ~]# ls
[root@localhost ~]# cd harbor/
[root@localhost ~]# cp harbor.yml.tmpl harbor.yml

2.2 修改配置文件
[root@localhost harbor]# vim harbor.yml
//这里改动三个地方:hostname、port、注释https的内容
hostname: harbor.openlab.cn
http:
  port: 80
#https:
  #https port for harbor, default is 443
 #port: 443
  #The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path

2.3 安装Harbor
[root@localhost harbor]# ./install.sh
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                 0.0s 
 ✔ Container harbor-log         Started                                                                                 0.3s 
 ✔ Container redis              Started                                                                                 0.9s 
 ✔ Container harbor-portal      Started                                                                                 0.5s 
 ✔ Container registry           Started                                                                                 0.8s 
 ✔ Container harbor-db          Started                                                                                 1.0s 
 ✔ Container registryctl        Started                                                                                 0.9s 
 ✔ Container harbor-core        Started                                                                                 1.1s 
 ✔ Container harbor-jobservice  Started                                                                                 1.5s 
 ✔ Container nginx              Started                                                                                 1.6s 
✔ ----Harbor has been installed and started successfully.----
安装完成之后再浏览器中访问,默认账号为admin、密码为Harbor12345

2.3 在浏览器中访问Harbor

2.4 登录成功,创建用户tom 

 2.5 新建test项目,且添加用户tom

 2.6 修改daemon.json配置文件
[root@localhost harbor]# vim /etc/docker/daemon.json
{
  "registry-mirrors":["https://registry.docker-cn.com"],
  "insecure-registries":["192.168.64.3"],
  "insecure-registries":["harbor.openlab.cn"]
}

2.7 修改hosts配置文件
[root@localhost harbor]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.64.3 harbor.openlab.cn

2.8 更改本地主机名
[root@localhost harbor]# hostnamectl set-hostname harbor.openlab.cn

2.9 重启服务登录
[root@localhost harbor]# systemctl restart docker 
[root@localhost harbor]# docker-compose up -d
[+] Running 9/7
 ✔ Container harbor-log         Running                                                                                 0.0s 
 ✔ Container harbor-portal      Started                                                                                 0.0s 
 ✔ Container registryctl        Running                                                                                 0.0s 
 ✔ Container harbor-db          Running                                                                                 0.0s 
 ✔ Container registry           Started                                                                                 0.0s 
 ✔ Container redis              Started                                                                                 0.0s 
 ✔ Container harbor-core        Started                                                                                 0.0s 
 ✔ Container nginx              Started                                                                                 0.0s 
 ✔ Container harbor-jobservice  Started                                                                                 0.0s

[root@localhost harbor]# docker login -u tom -p Harbor12345 192.168.64.3
注意:如果在输入第二条命令docker-compose up -d报错:-bash: docker-compose: command not found,则可以参考以下解决方案
1.从官网下载docker-compose插件
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

2.赋予该插件执行权限
chmod +x /usr/local/bin/docker-compose

3.查看docker-compose版本信息
docker-compose --version

3.编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库
3.1 Dockerfile内容如下
FROM centos:7
MAINTAINER "yuchen <yuchen@domain.com>"
COPY epel.repo /etc/yum.repos.d
RUN yum install -y nginx
COPY index.html /usr/share/nginx/html/
 
EXPOSE 80
CMD ["/usr/sbin/nginx","-g","daemon off;"]

3.2 制作镜像nginx:v1.1
[root@harbor nginx]# docker build -t nginx:v1.1 ./

3.3 验证镜像
[root@localhost nginx]# docker run -p 8080:80 --name ng111 nginx:v1.1
[root@localhost nginx]# docker ps | grep ng111
a95b39e9e7ce   nginx:v1.1                           "/usr/sbin/nginx -g …"   8 minutes ago   Up 8 minutes              0.0.0.0:8080->80/tcp, :::8080->80/tcp   ng111

3.4 上传镜像至Harbor
[root@localhost ~]# docker tag nginx:v1.1 node1.openlab.cn/test/nginx:v1.1
[root@localhost ~]# docker push node1.openlab.cn/test/nginx:v1.1



4.Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库

4.1 Dockerfile文件如下
FROM centos:7
MAINTAINER "1711582538 <1711582538@qq.com>"
RUN yum install -y httpd mariadb-server php php-mysql php-gd
RUN echo "welcome to my pages" > /var/www/html/index.html
EXPOSE 80
EXPOSE 3306
CMD ["httpd","-DFOREGOUND;"]

4.2 验证镜像
FROM centos:7
MAINTAINER "1711582538 <1711582538@qq.com>"
RUN yum install -y httpd mariadb-server php php-mysql php-gd

RUN mkdir -p /scripts
COPY dd.sh /scripts
WORKDIR /scripts
RUN chmod +x dd.sh
RUN ./dd.sh
EXPOSE 80
EXPOSE 3306

#!/bin/bash

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql > /dev/null

mysql_sage --user=mysql &
/usr/sbin/httpd -D FOREGROUND

4.3 编辑文件
[root@harbor lamp]# docker build -t lamp:v1.1 ./
[root@lharbor lamp]# docker run -it -p 88:80 lamp:v1.1 
[root@lharbor lamp]# cd /var/www/html/
[root@harbor lamp]# vim index.php

<?php
phpinfo();
?>

4.4 上传镜像
[root@harbor ~]# docker tag lamp:v1.1 node1.openlab.cn/test/lamp:v1.1
[root@harbor ~]# docker push node1.openlab.cn/test/lamp:v1.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/901224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网上购物系统的设计与实现/在线商城/基于spring boot的电商平台/基于Java的商品销售系统

摘 要 本毕业设计的内容是设计并且实现一个基于Springboot的网上购物系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。网上购物系统的功能已基本实现&#xff0c;主要包括用户管理、数码分类管理、数码产品管理、服…

如何快速制作解决方案PPT

如何快速制作解决方案PPT 理解客户的需求 在开始制作解决方案PPT之前&#xff0c;需要对客户的需求进行深入了解和分析。这包括客户需要解决的问题、目标、预算和时间限制等。 需求分析 客户需要解决的问题客户的目标预算限制时间限制 确定解决方案 基于客户的需求&#x…

LeetCode——二叉树篇(五)

刷题顺序及思路来源于代码随想录&#xff0c;网站地址&#xff1a;https://programmercarl.com 目录 404. 左叶子之和 513. 找树左下角的值 递归 迭代 112. 路径总和 113. 路径总和 II 404. 左叶子之和 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 /**…

【数据结构】如何用队列实现栈?图文详解(LeetCode)

LeetCode链接&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 本文默认读者已经掌握栈与队列的基本知识 或者先看我的另一篇博客&#xff1a;【数据结构】栈与队列_字节连结的博客-CSDN博客 做题思路 由于我们使用的是C语言&#xff0c;不能直接使用队…

前端 -- 基础 网页、HTML、 WEB标准 扫盲详解

什么是网页 : 网页是构成网站的基本元素&#xff0c;它通常由 图片、链接、文字、声音、视频等元素组成。 通常我们看到的网页 &#xff0c;常见以 .html 或 .htm 后缀结尾的文件&#xff0c; 因此俗称 HTML 文件 什么是 HTML : HTML 指的是 超文本标记语言&#xff0c…

基于单片机DHT11温湿度NRF2401无线通信控制系统

一、系统方案 本设计采用STC89C5单片机作为主控制器&#xff0c;从机采用DHT11传感器采集温湿度、按键设置报警阀值&#xff0c;液晶1602显示&#xff0c;蜂鸣器报警&#xff0c;无线NRF2401模块。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统…

SQL-每日一题【1527. 患某种疾病的患者】

题目 患者信息表&#xff1a; Patients 查询患有 I 类糖尿病的患者 ID &#xff08;patient_id&#xff09;、患者姓名&#xff08;patient_name&#xff09;以及其患有的所有疾病代码&#xff08;conditions&#xff09;。I 类糖尿病的代码总是包含前缀 DIAB1 。 按 任意顺序…

aardio开发语言Excel数据表读取修改保存实例练习

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right759;bottom479) winform.add( buttonEnd{cls"button";text"末页";left572;top442;right643;bottom473;z6}; buttonExcelRead{cls"button";text"读取Exce…

基于Java/springboot铁路物流数据平台的设计与实现

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;铁路物流数据平台当然也不能排除在外&#xff0c;从文档信息、铁路设计的统计和分析&#xff0c;在过程中会产生大量的、各…

云原生反模式

通过了解这些反模式并遵循云原生最佳实践&#xff0c;您可以设计、构建和运营更加强大、可扩展和成本效益高的云原生应用程序。 1.单体架构&#xff1a;在云上运行一个大而紧密耦合的应用程序&#xff0c;妨碍了可扩展性和敏捷性。2.忽略成本优化&#xff1a;云服务可能昂贵&am…

攻防世界-Training-WWW-Robots

原题 解题思路 robots.txt是网站的爬虫声明&#xff0c;说明允许哪些部分被爬取&#xff0c;进robots.txt看看。 f1.g.php不让看&#xff0c;进去看看。

AWS复制EC2文件到S3,g4dn.2xlarge没有NVIDIA GPU 驱动问题

1、给instances权限 action > Security > modify IAM role 把提前创建好的role给这个instance即可 2、复制到bucket aws s3 cp gogo.tar.gz s3://ee547finalbucket不需要手动安装GPU驱动 如果要自己安装&#xff0c;参考https://docs.aws.amazon.com/AWSEC2/latest/U…

snpEff变异注释的一点感想

snpEff变异注释整成人生思考 1.介绍2.安装过程以及构建物种参考数据库3.坑货来了4.结果文件判读5.小tips 1.介绍 &nbsp SnpEff&#xff08;Snp Effect&#xff09;是一个用于预测基因组变异&#xff08;例如单核苷酸变异、插入、缺失等&#xff09;对基因功能的影响的生物…

嵌入式开发之configure

1 前述 在Linux的应用或者驱动开发过程中&#xff0c;编写makefile是无法避免的问题&#xff0c;但是由于makefile的各种规则&#xff0c;或显式&#xff0c;或隐式&#xff0c;非常多&#xff0c;不经常写的话&#xff0c;很难写出一个可用的makefile文件。为了“偷懒”&…

07_缓存预热缓存雪崩缓存击穿缓存穿透

缓存预热&缓存雪崩&缓存击穿&缓存穿透 一、缓存预热 提前将数据从数据库同步到redis。 在程序启动的时候&#xff0c;直接将数据刷新到redis懒加载&#xff0c;用户访问的时候&#xff0c;第一次查询数据库&#xff0c;然后将数据写入redis 二、缓存雪崩 发生情…

Python 的下一代 HTTP 客户端

迷途小书童 读完需要 9分钟 速读仅需 3 分钟 1 环境 windows 10 64bitpython 3.8httpx 0.23.0 2 简介 之前我们介绍过使用 requests ( https://xugaoxiang.com/2020/11/28/python-module-requests/ ) 来进行 http 操作&#xff0c;本篇介绍另一个功能非常类似的第三方库 httpx&…

深入探索JavaScript中的5种经典算法

在本文中&#xff0c;您将了解到&#xff1a; 冒泡排序、快速排序等常见排序算法原理及其在 JavaScript 中的实现&#xff1b; 经典算法示例 1. 冒泡排序算法 冒泡排序算法&#xff1a;冒泡排序是一种简单但效率较低的排序算法。它通过多次遍历数组&#xff0c;比较相邻元素并…

JVM前世今生之JVM内存模型

JVM内存模型所指的是JVM运行时区域&#xff0c;该区域分为两大块 线程共享区域 堆内存、方法区&#xff0c;即所有线程都能访问该区域&#xff0c;随着虚拟机和GC创建和销毁 线程独占区域 虚拟机栈、本地方法栈、程序计数器&#xff0c;即每个线程都有自己独立的区域&#…

生成式AI系列 —— DCGAN生成手写数字

1、模型构建 1.1 构建生成器 # 导入软件包 import torch import torch.nn as nnclass Generator(nn.Module):def __init__(self, z_dim20, image_size256):super(Generator, self).__init__()self.layer1 nn.Sequential(nn.ConvTranspose2d(z_dim, image_size * 32,kernel_s…

基于web的停车场收费管理系统/基于springboot的停车场管理系统

摘 要 随着汽车工业的迅猛发展&#xff0c;我国汽车拥有量急剧增加。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展&#xff0c;人们对其管理的要求也不断提高&#xff0c;都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模…