docker项目实战

目录

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。

1)拉取mysql:5.6和owncloud镜像

2)后台运行容器

 3)通过ip:端口的方式访问owncloud

2、安装搭建私有仓库 Harbor

1)首先准备所需包

2)安装harbor

3)使用ip地址访问

4)推送镜像

3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。

1)制作镜像

2)推送镜像

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


1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。

1)拉取mysql:5.6和owncloud镜像

[root@localhost ~]# docker pull mysql:5.6
[root@localhost ~]# docker pull owncloud

2)后台运行容器

[root@localhost ~]# docker run -itd --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6 

[root@localhost ~]# docker run -itd -p5900:80 --name owncloud1 owncloud:latest

 3)通过ip:端口的方式访问owncloud

跟据向导信息完成部署

#上传文件成功即可开始使用

2、安装搭建私有仓库 Harbor

1)首先准备所需包

[root@localhost ~]# ls
harbor-offline-installer-v2.8.4.tgz docker-compose-linux-x86_64

2)安装harbor

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose 
 
#检查docker-compose版本
docker-compose --version
 
tar xf harbor-offline-installer-v2.8.4.tgz -C /usr/local/
cd /usr/local/
cd harbor/
 
#备份配置文件
cp harbor.yml.tmpl harbor.yml
 
#修改配置文件(按需修改)
vim harbor.yml
 
#安装启动harbor
./install.sh 
[+] Running 10/10
 ✔ Network harbor_harbor        Created  0.0s 
 ✔ Container harbor-log         Started  0.3s 
 ✔ Container registry           Started  0.6s 
 ✔ Container harbor-portal      Started  0.6s 
 ✔ Container registryctl        Started  0.4s 
 ✔ Container redis              Started  0.7s 
 ✔ Container harbor-db          Started  0.8s 
 ✔ Container harbor-core        Started  0.9s 
 ✔ Container harbor-jobservice  Started  1.4s 
 ✔ Container nginx              Started  1.4s 
✔ ----Harbor has been installed and started successfully.----

3)使用ip地址访问

#因为使用的80端口映射,所以直接访问ip地址
[root@master harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                   CREATED          STATUS                    PORTS                                       NAMES
ad357892e9b7   goharbor/nginx-photon:v2.8.4         "nginx -g 'daemon of…"   14 minutes ago   Up 14 minutes (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp       nginx

4)推送镜像

#命令行登录harbor
[root@master ~]# docker login harbor.com.cn
Username: admin   
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
 
Login Succeeded
 
#打标签
[root@master ~]# docker tag mysql:5.6 harbor.com.cn/own-cloud/mysql:5.6
#推送
[root@master ~]# docker push harbor.com.cn/own-cloud/mysql:5.6
The push refers to repository [harbor.com.cn/library/mysql]
7137327a7221: Pushed 
49a1ca1cd2b8: Pushed 
7c5a5c1986b1: Pushed 
eba393347f89: Pushed 
2612088e90f6: Pushed 
e3dce1c82d4e: Pushed 
7ea96a4e341b: Pushed 
4085e588967d: Pushed 
d414fdead0b9: Pushed 
2e1029557391: Pushed 
2b83e5699838: Pushed 
5.6: digest: sha256:897086d07d1efa876224b147397ea8d3147e61dd84dce963aace1d5e9dc2802d size: 2621
 
#退出登录
[root@master ~]# docker logout
Removing login credentials for https://index.docker.io/v1/

3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。

具体要求如下:
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。

1)制作镜像

#创建默认主页
[root@master ~]# mkdir nginx
[root@master ~]# cd nginx/
[root@master nginx]# vim index.html
<h1>docker nginx build successful</h1>
 
#编写Dockerfile文件(最好放在空目录)
[root@master ~]# mkdir /dockerfile/web -p
[root@master ~]# cd /dockerfile/web/
[root@master web]# vim Dockerfile
 
#指定使用镜像及版本
FROM centos:7
 
#标明作者和邮箱
MAINTAINER "test <test.1@139.com>"
 
#下载wget配置epel源下载nginx
RUN yum install -y wget 
RUN wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
RUN yum install -y nginx
 
#将提前写好的主页替换掉默认的
COPY index.html /usr/share/nginx/html/index.html
 
#暴露80端口
EXPOSE 80/tcp
 
#设置开机自启服务
CMD ["nginx", "-g", "daemon off;"]
 
#构建nginx:v1.1镜像
[root@master nginx]# docker build -t nginx:v1.1 -f /dockerfile/web/Dockerfile .
[+] Building 42.0s (10/10) FINISHED                                                                      docker:default
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 320B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                        0.0s
 => CACHED [1/5] FROM docker.io/library/centos:7                                                                   0.0s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 77B                                                                                   0.0s
 => [2/5] RUN yum install -y wget                                                                                 18.9s
 => [3/5] RUN wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo                        0.7s
 => [4/5] RUN yum install -y nginx                                                                                21.6s 
 => [5/5] COPY index.html /usr/share/nginx/html/index.html                                                          0.0s 
 => exporting to image                                                                                             0.7s 
 => => exporting layers                                                                                            0.7s 
 => => writing image sha256:c35cac64c3d272124c91e46fd52b9c9935fcb5686890b29241035d7474f03182                       0.0s 
 => => naming to docker.io/library/nginx:v1.1                                                                      0.0s
 
#查看成功构建的镜像
[root@master nginx]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        v1.1      c35cac64c3d2   4 minutes ago   684MB
centos       7         eeb6ee3f44bd   23 months ago   204MB
 
#使用构建的镜像启动一个容器
[root@master ~]# docker run -d -p 3000:80 --name test1 nginx:v1.1 
b22cc4550e85e0bf4512467abfbbfb310c07d18246c78ad1f8e5909acec1176c
[root@master ~]# docker ps
CONTAINER ID   IMAGE        COMMAND                   CREATED         STATUS         PORTS                                   NAMES
b22cc4550e85   nginx:v1.1   "nginx -g 'daemon of…"   4 seconds ago   Up 4 seconds   0.0.0.0:3000->80/tcp, :::3000->80/tcp   test1

2)推送镜像

#登录自己的dockerhub镜像仓库
[root@master ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: workl
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
#打包镜像
[root@master ~]# docker tag nginx:v1.1 workl/test1:my_nginx
#推送镜像
[root@master ~]# docker push workl/test1:my_nginx
The push refers to repository [docker.io/workl/test1]
fab04c3e6af6: Pushed 
c5cd136625a9: Pushed 
bac427254136: Pushed 
e7bdba266517: Pushed 
174f56854903: Pushed 


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)验证镜像。

 
 
[root@master dockerfile]# mkdir lamp
[root@master ~]# cd dockerfile/lamp/
[root@master lamp]# ls
Dockerfile
[root@master lamp]# vim Dockerfile
 
#注意:宿主机使用的版本尽量与docker拉取的镜像版本一致
FROM centos:6
MAINTAINER "test <test.1@139.com>"
 
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo && sed -i 's|http://mirrors.aliyun.com/centos|https://mirrors.aliyun.com/centos-vault/centos|g' /etc/yum.repos.d/CentOS-Base.repo
RUN yum install -y wget && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
COPY run.sh /run.sh
RUN chmod +x /run.sh
RUN yum install -y httpd mysql mysql-server php php-mysql php-gd
ADD wordpress-4.8-zh_CN.tar.gz /var/www/html
 
EXPOSE 80 3306
CMD ["./run.sh"]
 
 
[root@master ~]# mkdir lamp
[root@master ~]# cd lamp/
[root@master lamp]# vim run.sh
#!/bin/bash
systemctl start mysql
sleep 3
mysql -e "create database wordpress;"
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"
sleep 3
systemctl start httpd
 
 
[root@master lamp]# chmod +x run.sh 
[root@master lamp]# ls
run.sh                                              wordpress-4.8-zh_CN.tar.gz
 
 
[root@master lamp]# docker build -t lamp:v1.1 -f /dockerfile/lamp/Dockerfile .
[+] Building 31.1s (11/11) FINISHED                                                                      docker:default
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 615B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                        0.0s
 => [1/6] FROM docker.io/library/centos:7                                                                          0.0s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 76B                                                                                   0.0s
 => CACHED [2/6] RUN yum install -y wget && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe  0.0s
 => CACHED [3/6] COPY run.sh /run.sh                                                                               0.0s
 => CACHED [4/6] RUN chmod +x /run.sh                                                                              0.0s
 => [5/6] RUN yum install -y httpd mysql mysql-server php php-mysql php-gd                                        29.6s
 => [6/6] ADD wordpress-4.8-zh_CN.tar.gz /var/www/html                                                             0.2s 
 => exporting to image                                                                                             1.2s 
 => => exporting layers                                                                                            1.2s 
 => => writing image sha256:6197e9c54d05cf3f2aeda27ea570102d2a30d73f0f49b89f6817fc85e923468c                       0.0s 
 => => naming to docker.io/library/lamp:v1.1                                                                       0.0s 
[root@master lamp]# docker images
REPOSITORY    TAG        IMAGE ID       CREATED          SIZE
lamp          v1.1       6197e9c54d05   15 seconds ago   823MB
nginx         v1.1       c35cac64c3d2   3 hours ago      684MB
workl/test1   my_nginx   c35cac64c3d2   3 hours ago      684MB
centos        6          5bf9684f4720   23 months ago    194MB
centos        7          eeb6ee3f44bd   23 months ago    204MB
 
 
[root@master lamp]# docker run -itd --name test1 lamp:v1.1 /bin/bash
4f0a785b22fd7241ab777ff493e8537eb332444144bdb13b86d376016916fa7e
[root@master lamp]# docker ps
CONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS              NAMES
4f0a785b22fd   lamp:v1.1   "/bin/bash"   16 seconds ago   Up 16 seconds   80/tcp, 3306/tcp   test1

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript——为什么静态方法不能调用非静态方法

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout&#xff0c;也称为广播。 流程图&#xff1a; 在广播模式下&#xff0c;消息发送流程是这样的&#xff1a; 1&#xff09; 可以有多个消费者 2&#xff09; 每个消费者有自己的queue&#xff08;队列&#xff09; 3&#xff09; 每个队列都要绑定…

C++:命名空间,缺省参数,函数重载,引用,内联函数

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》 文章目录 前言一、命名空间命名空间的定义命名空间的使用 二、缺省参数缺省参数概念缺省参数分类 三、函数重载函数重载的概念 四、引用引用的概念引用特性引用的使用场景引用与指针的区别 …

vr内容编辑软件降低了虚拟现实项目开发门槛

VR虚拟场景编辑器是一种专门用于创建、修改和设计虚拟场景的工具。它利用vr虚拟现实技术&#xff0c;让用户可以在三维空间中直接对场景进行操作和编辑。这种编辑器的出现&#xff0c;使得用户可以更加直观、自由地进行场景设计和制作&#xff0c;为诸多领域带来了新的可能性。…

目标检测(Object Detection):Fast R-CNN,YOLO v3

目录 目标检测(Object Detection) R-CNN SPPNet Fast R-CNN YOLO v1 YOLO v2 YOLO v3 目标检测(Object Detection) 任务是计算机视觉中非常重要的基础问题&#xff0c;也是解决图像分割、目标跟踪、图像描述等问题的基础。目标检测是检测输入图像是否存在给定类别的物体…

将公共组件提取到npm包中

多个前端项目中公共组件使用方案&#xff08;npm包方式&#xff09; - 简书

深入篇【C++】set和map(multiset/multimap)特性总结与使用

深入篇【C】set和map(multiset/multimap&#xff09;特性总结与使用 一.set/multiset总结二.map/multiset总结三.set/map应用 一.set/multiset总结 set是按照一定次序存储元素的容器在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每…

服务器数据恢复-EVA存储磁盘故障导致存储崩溃的数据恢复案例

EVA系列存储是一款以虚拟化存储为实现目的的中高端存储设备。EVA存储中的数据在EVA存储设备工作过程中会不断进行迁移&#xff0c;如果运行的任务比较复杂&#xff0c;EVA存储磁盘负载加重&#xff0c;很容易出现故障的。EVA存储通过大量磁盘的冗余空间和故障后rss冗余磁盘动态…

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型&#xff0c;考虑私家车、出租车和共用车三类交通工具特性和…

诺依框架ruoyi.js添加默认当年日期范围

ruoyi.js添加方法 // 默认当年日期范围如&#xff1a;2023-01-01到2023-08-22&#xff08;至今&#xff09; export function defaultYearDate(data) {// this.dateDefaultShow new Date();// this.dateDefaultShow.setMonth(new Date().getMonth() - 1);const end new Date…

element-table的动态操作,自动以表格,动态新增行、列,删除行列

灵活的自定义表格行列以及增删改查的操作,右键选中列则是列的删除&#xff0c;效果如下 <template><div class"st-table"><div style"width: 100%"><el-button click"addRow()" type"primary" icon"CircleP…

【学习FreeRTOS】第17章——FreeRTOS任务通知

1.任务通知的简介 任务通知&#xff1a;用来通知任务的&#xff0c;任务控制块中的结构体成员变量 ulNotifiedValue就是这个通知值。 使用队列、信号量、事件标志组时都需另外创建一个结构体&#xff0c;通过中间的结构体进行间接通信&#xff01; 使用任务通知时&#xff0c…

Django学习笔记-AcApp端授权AcWing一键登录

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样&#xff0c;只有申请授权码这一步有一点细微的差别&#xff1a; 我们在打开 AcApp 应用之后会自动向 AcW…

Mybatis-分页与动态字符

目录 一.Mybatis动态分页 什么是动态分页&#xff1a; 导入pom依赖 配置拦截器 编写Bookmapper文件 配置pageBean文件 配置BookBiz接口类 配置BookBizImpl实现接口类 编写实现类demo 测试结果 ​编辑 不走插件&#xff0c;不会分页 二.Mybatis的特殊字符 编写一个Book…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下&#xff0c;我们都会进行测试。 比如买件衣服&#xff0c;我们需要看衣服是不是穿着好看&#xff0c;衣服材质如…

java八股文面试[数据结构]——HashMap扩容优化

知识来源&#xff1a; 【2023年面试】HashMap在扩容上做了哪些优化_哔哩哔哩_bilibili

Ansible 自动化安装软件

例子如下&#xff1a; 创建一个名为/ansible/package.yml 的 playbook : 将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机上 将 RPM Development Tools 软件包组安装到 dev 主机组中的主机上 将 dev 主机组中主机上的所有软件包更新为最新版本 --- - name:…

k8s之工作负载、Deployment、DaemonSet、StatefulSet、Job、CronJob及GC

文章目录 1、工作负载1.1、定义1.2、分类 2、Deployment2.1、定义2.2、Deployment创建2.3、Deployment 更新机制2.3.1、比例缩放&#xff08;Proportional Scaling&#xff09;2.3.2、HPA&#xff08;动态扩缩容&#xff09;2.3.2.1、需要先安装metrics-server2.3.2.2、配置hpa…

JVM工具-1. jps:虚拟机进程状态工具

文章目录 1. jps介绍2. jps命令格式3. jps工具主要选项4. jps -q5. jps -m6. jps -l7. jps -v 1. jps介绍 jps(JVM Process Status Tool)&#xff1a;虚拟机进程状态工具&#xff0c;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类&#xff08;Main Class&…

【UE5:CesiumForUnreal】——3DTiles数据属性查询和单体高亮

目录 0.1 效果展示 0.2 实现步骤 1 数据准备 2 属性查询 2.1 射线检测 2.2 获取FeatureID 2.3 属性查询 2.4 属性显示 3 单体高亮 3.1 构建材质参数集 3.2 材质参数设置 3.3 添加Cesium Encode Metadata插件 3.4 从纹理中取出特定FeatureId属性信息 3.5 创建…