企业应用交付Docker镜像进阶实战笔记(下

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 企业应用交付Docker镜像进阶实战笔记(下

八、Portainer可视化工具


docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --priviledged=true port


访问http://localhost:8088


九、Commit镜像【保存当前状态或者打包】


// 提交容器成为一个新的副本
docker commit 
docker commit -m="提交的描述信息" -a="作者" 容器ID  目标镜像名:[tag]

9.1 测试

// 启动Tomcat
docker run -it -p 8080:8080 tomcat
// 进入容器
docker exec -it 容器ID /bin/bash
cd /usr/local/tomcat
cp -r webapps.dist/* webapps
// 现在这个镜像我修改了  想要提交  
docker commit -a="古力娜扎" -m="add webapps app"  容器ID  tomcat02:1.0

20200729152840558.png

十、容器数据卷【数据同步】


10.1 概述


将应用打包成一个镜像

容器删除后,数据,数据持久化怎么办?

需求:MySql数据可以共享同步到本地

就是讲容器中的目录挂载到Linux中,多个容器也可以


20200729153713902.png


10.2 目录挂载


// 挂载
docker run -it -v 主机目录:容器目录 xxxxx  /bin/bash
// 查看容器信息
docker inspect 容器ID


20200729154214161.png

容器内外的目录数据 同步更新


10.3 Docker实现Mysql数据同步


如何实现数据持久化,数据同步?


docker pull mysql:5.7
docker images
// 运行并挂载配置目录 数据目录 密码
docker run -d -p 3307:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

20200729162338885.png

本地同步的数据,数据库数据同步:

20200729162431863.png

10.4 匿名挂载


// 会在本机自动创建一个目录进行同步
docker run -d -P --name nginx01 -v /etc/nginx  nginx
// 查看挂载情况
docker volume ls
// 查看卷
docker volume inspect juming-nginx


20200729163912861.png

20200729164005983.png

十一、Dockerfile构建镜像【命令脚本】


11.1 命令

FROM centos
VOLUNE ["volume01","volume02"]
CMD ECHO "====END===="
CMD /bin/bash
docker build -f /home/volume-test/dockerfil1 -t /wang/centos .

20200730082642711.png


11.2 构建自己的Centos镜像


1. 构建文件


mkdir /home/dockerfile

vim mydockerfile-centos


FROM centos
MAINTAINER wang<123456789@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "===end==="
CMD /bin/bash

2.构建


docker build -f mydockerfile-centos -t mycentos:0.1  .


20200730084604679.png


3.测试运行


docker images

20200730084723163.png

4.运行

docker run  -it  mycentos:0.1

20200730085124121.png


11.3 构建Tomcat镜像


1.准备工作: tomcat 压缩包 jdk压缩包


vim Dockerfile


20200730091548114.png


FROM centos
MAINTAINER  wang<123456789@qq.com>
COPY  readme.txt  /usr/local/readme.txt
ADD jdk-8ull-linux-x64-tar.gz  /usr/local/
ADD apache-tomcat-9.0.22.tar.gz  /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME  /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME//lib/tools.jar
ENV CATALINA_HOME  /usr/local/apache-tomcat-9.0.22/
ENV CATALINA_BASE   /usr/local/apache-tomcat-9.0.22/
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
RUN yum -y install vim
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh  && tail -F  /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out


2.构建镜像


docker build -t mytomcat01  .


3.启动


docker run -d -p  8081:8080 --name mytomcat01  \
  -v  /home/wang/build/tomcat/test:/usr/local/apache-tomcat-9.0.22/webapps/test  \
  -v /home/wang/build/tomcat/logs/:/usr/local/apache-tomcat-9.0.22/logs


4.发布项目


卷挂载,在本机进行操作就可以了。


十二、发布镜像到DockerHub


12.1 注册账号


https://hub.docker.com/


12.2 登录

20200730094238802.png

12.3 提交镜像


docker images
docker  push  wyn365/mytomcat01:1.0


20200730095005400.png

十三、发布到阿里云镜像服务中


13.1 登录阿里云控制台


13.2 找到镜像服务


20200730095220367.png


13.3 创建命名空间


20200730095314149.png


13.4 创建镜像仓库

20200730095641272.png


20200730095914706.png


13.5 推送


1. 登录阿里云Docker Registry


$ sudo docker login --username=算法算法算法 registry.cn-hangzhou.aliyuncs.com


用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。


2. 从Registry中拉取镜像

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/wyn-365/mydocker:[镜像版本号]

3. 将镜像推送到Registry

$ sudo docker login --username=算法算法算法 registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/wyn-365/mydocker:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/wyn-365/mydocker:[镜像版本号]


请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。


4. 选择合适的镜像仓库地址


从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。


如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。


5. 示例


使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。


$ sudo docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。


$ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816



20200730102657157.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
5天前
|
存储 安全 持续交付
【Docker 专栏】Docker 镜像的版本控制与管理
【5月更文挑战第9天】本文探讨了Docker镜像版本控制与管理的重要性,包括可重复性、回滚能力、协作开发和持续集成。常用方法有标签、构建参数和版本控制系统。管理策略涉及定期清理、分层管理和镜像仓库。语义化标签、环境变量和配置文件在版本控制中有应用。版本系统与Docker结合能跟踪历史和促进协作。注意点包括优化镜像大小、确保安全性和兼容性。案例分析和未来趋势展示了持续发展的镜像管理技术,为Docker应用的稳定与进步保驾护航。
【Docker 专栏】Docker 镜像的版本控制与管理
|
3天前
|
存储 Linux Docker
CentOS7修改Docker容器和镜像默认存储位置
CentOS7修改Docker容器和镜像默认存储位置
|
5天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
22 3
|
5天前
|
Cloud Native 安全 Linux
【云原生之Docker实战】使用Docker部署mBlog微博系统
【5月更文挑战第10天】使用Docker部署mBlog微博系统
16 2
|
5天前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
25 2
如何删除 Docker 镜像、容器和卷?
|
5天前
|
测试技术 持续交付 Docker
Docker in Docker原理与实战
Docker in Docker原理与实战
6 0
|
5天前
|
运维 安全 Docker
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
【5月更文挑战第9天】Docker技术在软件开发和部署中带来便利,但其镜像安全问题不容忽视。本文探讨了Docker镜像安全扫描与漏洞修复,强调了镜像安全对应用和系统的重要性。文中介绍了静态和动态扫描方法,列举了软件漏洞、配置漏洞和恶意软件等常见安全问题,并提到了Clair和Trivy等扫描工具。修复策略包括更新软件、调整配置和重建镜像。此外,加强安全意识、规范镜像制作流程和定期扫描是管理建议。未来,将持续面对新的安全挑战,需持续研究和完善安全技术。
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
|
5天前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
|
5天前
|
存储 弹性计算 运维
Docker数据集与自定义镜像:构建高效容器的关键要素
Docker数据集与自定义镜像:构建高效容器的关键要素