docker项目实战

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

1)拉取mysql:5.6和owncloud镜像

[root@master ~]# docker pull mysql:5.6
5.6: Pulling from library/mysql
35b2232c987e: Pull complete 
fc55c00e48f2: Pull complete 
0030405130e3: Pull complete 
e1fef7f6a8d1: Pull complete 
1c76272398bb: Pull complete 
f57e698171b6: Pull complete 
f5b825b269c0: Pull complete 
dcb0af686073: Pull complete 
27bbfeb886d1: Pull complete 
6f70cc868145: Pull complete 
1f6637f4600d: Pull complete 
Digest: sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Status: Downloaded newer image for mysql:5.6
docker.io/library/mysql:5.6[root@master ~]# docker pull owncloud
Using default tag: latest
latest: Pulling from library/owncloud
177e7ef0df69: Pull complete 
9bf89f2eda24: Pull complete 
350207dcf1b7: Pull complete 
a8a33d96b4e7: Pull complete 
c0421d5b63d6: Pull complete 
f76e300fbe72: Pull complete 
af9ff1b9ce5b: Pull complete 
d9f072d61771: Pull complete 
a6c512d0c2db: Pull complete 
5a99458af5f8: Pull complete 
8f2842d661a0: Pull complete 
3c71c5361f06: Pull complete 
baeacbad0a0c: Pull complete 
e60049bf081a: Pull complete 
0619078e32d3: Pull complete 
a8e482ee2313: Pull complete 
174d1b06857d: Pull complete 
4a86c437f077: Pull complete 
5e9ed4c3df2d: Pull complete 
8a1479477c8e: Pull complete 
8ab262044e9e: Pull complete 
Digest: sha256:173811cb4c40505401595a45c39a802b89fb476885b3f6e8fe327aae08d20fe8
Status: Downloaded newer image for owncloud:latest
docker.io/library/owncloud:latest

2)后台运行容器

#mysql
[root@master ~]# docker run -itd --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6 
40402b2c100b13607927946db1c09d2556db03460a33a1dd7a38fa069ea8ab33#owncloud
[root@master ~]# docker run -itd -p5900:80 --name owncloud1 owncloud:latest 
862deb3f6e97585e1c6800062774f73f485b90327a27feee0af0ca769e473421

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

跟据向导信息完成部署

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

 2、安装搭建私有仓库 Harbor

1)首先准备所需包

[root@master ~]# 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 --versiontar 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-storeLogin 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-storeLogin 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/htmlEXPOSE 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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设置Windows主机的浏览器为wls2的默认浏览器

1. 准备工作 wsl是可以使用Windows主机上安装的exe程序&#xff0c;出于安全考虑&#xff0c;默认情况下改功能是无法使用。要使用的话&#xff0c;终端需要以管理员权限启动。 我这里以Windows Terminal为例&#xff0c;介绍如何默认使用管理员权限打开终端&#xff0c;具体…

SQLite数据库实现数据增删改查

当前文章介绍的设计的主要功能是利用 SQLite 数据库实现宠物投喂器上传数据的存储&#xff0c;并且支持数据的增删改查操作。其中&#xff0c;宠物投喂器上传的数据包括投喂间隔时间、水温、剩余重量等参数。 实现功能&#xff1a; 创建 SQLite 数据库表&#xff0c;用于存储宠…

实例040 限制窗体大小

实例说明 Windows窗体是可以随意改变大小的&#xff0c;然而对于一些要求严格的窗体&#xff0c;开发人员不希望用户随意的改变其大小&#xff0c;例如&#xff0c;定位准确的地图和游戏软件等。遇到这种情况必须对窗口的大小进行一些限制。本例设计一个限制了大小的窗体&#…

vue2+Spring Boot2.7 大文件分片上传

之前我们文章 手把手带大家实现 vue2Spring Boot2.7 文件上传功能 将了上传文件 但如果文件很大 就不太好处理了 按正常情况甚至因为超量而报错 这里 我弄了个足够大的文件 我们先搭建 Spring Boot2.7 环境 首先 application.yml 代码编写如下 server:port: 80 upload:path:…

漏洞指呗-VluFocus靶场专栏-番外篇

漏洞指呗-VluFocus靶场专栏-番外篇奇技淫巧 &#x1f338;struts2漏洞扫描工具&#x1f338;step1 修改ip和端口step2 验证漏洞是否存在step3 执行cmd命令&#xff0c;获取flag &#x1f338;Goby插件工具headshot&#x1f338;step1 输入ip和端口 检测step2 cmd 输入指令 &…

漏洞指北-VulFocus靶场专栏-初级01

漏洞指北-VulFocus靶场专栏-初级 初级001 &#x1f338;海洋CMS代码执行&#xff08;CNVD-2020-22721&#x1f338;step1&#xff1a;进入后台页面 账号密码&#xff1a;admin amdinstep2&#xff1a;点击系统&#xff0c;点击后台IP安全设置,关闭step3 启动burpsuite&#xff…

Visual Studio 2022 你必须知道的实用调试技巧

目录 1、什么是bug&#xff1f; 2.调试是什么&#xff1f;有多重要&#xff1f; 2.1我们是如何写代码的&#xff1f; 2.2又是如何排查出现的问题的呢&#xff1f; ​编辑 2.3 调试是什么&#xff1f; 2.4调试的基本步骤 2.5Debug和Release的介绍 3.Windows环境调试介绍…

设计模式——接口隔离原则

文章目录 基本介绍应用实例应传统方法的问题和使用接口隔离原则改进 基本介绍 客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上先看一张图: 类 A 通过接口 Interface1 依赖类 B&#xff0c;类 C 通过接口 Interface1 依赖类 D&…

python rtsp 硬件解码 二

上次使用了python的opencv模块 述说了使用PyNvCodec 模块&#xff0c;这个模块本身并没有rtsp的读写&#xff0c;那么读写rtsp是可以使用很多方法的&#xff0c;我们为了输出到pytorch直接使用AI程序&#xff0c;简化rtsp 输入&#xff0c;可以直接使用ffmpeg的子进程 方法一 …

Python 处理 Excel 表格的 14 个常用操作

目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…

Mybatis的环境搭建

目录 一.Mybatis的环境搭建 1.创建项目 2.进行相关配置 3.安装插件 4.插件的使用 一.Mybatis的环境搭建 1.创建项目 1.1 创建Maven项目&#xff0c;配置好相应的JDK和archetype 1.2 给项目命名和创建目录结构 1.3 添加自定义Property自定义属性 2.进行相关配置 2.1 导入p…

MySQL 安装 audit 日志审计插件

下载 我的MySQL版本是 5.7.37的&#xff0c;用的是日志审计插件&#xff08;audit-plugin&#xff09;是1.1.10的&#xff0c;大家可以对应自己版本去下载。 https://github.com/trellix-enterprise/mysql-audit/releases 配置 1、进入到/opt目录下载 audit&#xff0c;可以…

11. 盛最多水的容器

链接 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。说明&#xff1a;你不能倾斜容器。 示例…

Spring Clould 负载均衡 - Ribbon

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Ribbon-负载均衡原理&#xff08;P14&#xff09; 具体实现时通过LoaBalanced注解实现&#xff0c;表示RestTemplate要被Ribbon拦截处理 orderservice调用user时候&#xff0c…

面试之快速学习STL-容器适配器

1. 容器适配器 简单的理解容器适配器&#xff0c;其就是将不适用的序列式容器&#xff08;包括 vector、deque 和 list&#xff09;变得适用。 注意&#xff1a;默认使用的基础容器不代表一定只能用它&#xff0c;比如queue可以用deque&#xff0c;list。 如果你希望你的qu…

perl下载与安装教程【工具使用】

Perl是一个高阶程式语言&#xff0c;由 Larry Wall和其他许多人所写&#xff0c;融合了许多语言的特性。它主要是由无所不在的 C语言&#xff0c;其次由 sed、awk&#xff0c;UNIX shell 和至少十数种其他的工具和语言所演化而来。Perl对 process、档案&#xff0c;和文字有很强…

【腾讯云Cloud Studio实战训练营】用Vue+Vite快速构建完成交互式3D小故事

&#x1f440;前置了解&#xff1a;(官网 https://cloudstudio.net/) 什么是Cloud Studio&#xff1f; Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#…

通讯录的实现

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1…

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥&#xff0c;作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示&#xff1a;这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式&#xff0c;它结合了ECC抵御标准攻击的安全性和…

Tomcat 一次请求的生命周期

在使用 Tomcat 的时候&#xff0c;我们只需要在 Servlet 实现类中写我们的业务逻辑代码即可&#xff0c;不需要管 Socket 连接、协议处理要怎么实现&#xff0c;因为这部分作为不经常变动的部分&#xff0c;被封装到了 Tomcat 中&#xff0c;程序员只需要引入 Tomcat 中即可&am…