首页 > 其他分享 >应用部署与Dockerfile

应用部署与Dockerfile

时间:2022-12-21 14:56:15浏览次数:34  
标签:容器 部署 redis vim 应用 mysql 镜像 docker Dockerfile

应用部署

mysql部署

# 在宿主机上不需要安装mysql了,直接拉取mysql镜像,运行成容器即可
# 部署步骤
	-1 创建文件夹
    mkdir /root/mysql
	mkdir /root/mysql/conf.d
	mkdir /root/mysql/data/
    
    -2 mysql配置文件,新建
    	-在mysql文件夹下
        touch my.cnf
        vim my.cnf
        
    -3 基于镜像运行成容器(端口映射,目录映射)
    docker run -id --name=mysql3 -p 3306:3306 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data/:/var/lib/mysql -v /root/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 
    # 运行mysql 需要传入环境变量
    MYSQL_ROOT_PASSWORD #root超级管理员的密码

    -4 运行3 的命令
    
    -5 远程链接mysql ,创建库,创建表
    -6 在容器中链接mysql,可以看到库和表
    -7 删除容器 
    -8 创建一个新容器,数据还在[一定要做目录映射]
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

redis部署

# 步骤:
	-1 拉取redis镜像
    -2 创建文件夹和文件
    	mkdir reids
       mkdir reids/conf
       mkdir reids/data
       vim ./reids/conf/redis.conf
    -3 配置文件
        bind 0.0.0.0
        daemonize NO
        protected-mode no
        requirepass 123456

    -2 docker命令
    # low一些,没有做目录映射
    docker run -di --name=myredis -p 6379:6379 redis
    # 咱们用这个
    docker run -id -p 6379:6379 --name redis_6379 -v /root/reids/conf/redis.conf:/etc/redis/redis.conf -v /root/reids/data:/data redis  redis-server /etc/redis/redis.conf --appendonly yes

部署nginx

# 步骤
	-1 拉取nginx镜像
    docker pull nginx
    -2 docker 命令
    docker run -id --name=nginx -p 80:80 nginx
    -3 从win机器浏览器可以访问:10.0.0.205:80
    -4 今日容器内部,修改index    /usr/share/nginx/html
    -5 修改index.html   
    	-vi  vim都没有,安装发现yum也没有,它不是centos 
        -apt-get update
        -apt-get install vim
        
    -6 访问,发现页面变了   

迁移与备份

容器做成镜像

# 把容器,打包成镜像--->容器中装了很多软件
	-python 镜像,基于debain做的
    -基于centos ,装python3.8解释器----》镜像---》放到网上给别人用

# 咱们案例,基于ngixn+vim+index改了的 做成镜像
	-docker commit 67f5d6f1f4a5 nginx_vim

# 基于自己做的镜像,运行成容器
	docker run -id --name=xxx -p 8080:80 nginx_vim:latest

把镜像备份成压缩包

# 把镜像做成tar文件
	docker save -o mynginx.tar nginx_vim

# 把压缩包load成镜像
	docker load -i mynginx.tar

Dockerfile

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,文件名必须叫Dockerfile

# 镜像哪里来?
	-1 远程仓库下载的
    -2 容器做的
    -3 xx.tar 解压出来的
    -4 通过dockerfile构建
    	普通文件,文件中写了很多命令,根据这些命令创建出镜像来
        
        
# 常用命令
	#1  FROM image_name:tag	 基于哪个基础镜像来构建
    #2  MAINTAINER lqz	     声明镜像的创建者
    #3  ENV key value	     设置环境变量 (可以写多条)
    	ENV DB_PASSWORD lqz123  运行容器 -e参数指定 -e DB_PASSWORD=xxxx
    #4  RUN command	           是Dockerfile的核心部分(可以写多条),
    	command  linux命令
   
	# 5 ADD 宿主机路径文件  容器路径文件	  将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
    # 6 COPY 宿主机路径文件  容器路径文件  将宿主机的文件复制到容器内
    # 7 WORKDIR path_dir	设置工作目录    docker exec 进入到容器,在某个路径下
    # 8 CMD   命令          运行容器默认执行的命令,它可以被替换 
    	CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改

简单案例基于centos创建一个镜像,里面带vim软件

Dockerfile

FROM centos:7
MAINTAINER lqz
WORKDIR /home
RUN yum install -y vim
RUN mkdir lqz
ADD ./xx.txt ./yy.txt

构建镜像

docker build -t='centos_lqz_vim' .

制作django项目的镜像,运行

# 步骤:
	-1 books项目准备好
    -2 在项目路径下编写Dockerfile
        FROM python:3.8
        MAINTAINER lqz
        WORKDIR /soft
        COPY ./requirements.txt /soft/requirements.txt
        RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple
        CMD ["python","manage.py","runserver","0.0.0.0:8080"]
        
    -3 把books代码提交到git
    -4 部署项目的机器,clone 项目
    	git clone https://gitee.com/liuqingzheng/books.git
    -5 cd books 文件夹下,执行构建镜像命令
    	docker build -t='django_books' .
    -6 有个镜像django_books,运行成容器
		docker run -id --name=books -v /root/books:/soft -p 8080:8080 books_django:latest
        
   -7 win操作系统的浏览器中访问虚拟机地址,就可以访问项目了

	-8 继续开发项目,改了代码,提交到git
    -9 部署项目的机器,拉去最新代码
    -10 重启docker容器即可(第三方依赖变了)--》重写构建镜像,运行容器

标签:容器,部署,redis,vim,应用,mysql,镜像,docker,Dockerfile
From: https://www.cnblogs.com/riuqi/p/16996259.html

相关文章

  • “高效部署、绿色低碳”,数字基础设施领域新国标重磅发布
    信息化浪潮正汹涌澎湃,模块化数据中心成为数据中心建设模式的新标准与方向标。为进一步消除“痛点”、规范发展,日前,由浪潮信息牵头立项的《模块化数据中心通用规范》获批发......
  • rabbit单机版部署
    安装erlang erlang:https://www.erlang.org/patches/otp-23.3.4.18注意:erlang与rabbitmq版本对标必须一致,RabbitMQErlang版本要求:https://www.rabbitmq.com/which-erl......
  • PXE(grub efi)部署Ubuntu18.04问题总结
    PXE(grubefi)部署Ubuntu18.04问题总结:1、HP默认只配置了第1个网卡和第1个光纤PXE启动解决:可在BIOS手动开启2、UbuntuISO要使用非live版(官网默认为live版,live多了试用......
  • 实验五 结构体应用编程
    实验任务三task3.c#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩ints2;/......
  • 位运算应用
    &与运算应用按位或|异或运算^取反运算~左移运算<<右移运算>>无符号右移运算>>>负数以其正值的补码形式表示1.任何一个数和0异或是它的本身,和自身异或为0:a^0=aa^a=0利用上......
  • 20221322 实验八-Web部署 实验报告
    Web部署(openEuler中基于LAMP部署WordPress)实验过程一、配置openEuler华为云openEuler安装后,没有配置yum源,我们通过重新配置。cd/etc/yum.repos.dviopenEuler_x86......
  • Yum应用场景 之 基于Centos-7 内网yum源服务器同步公网yum源
    内网yum源服务器同步公网yum源​​前言​​​​一、Yum应用场景​​​​二、案例部署​​前言RHEL、Centos系列系统,安装软件需要搭建yum仓库。但是当我们安装某些大多数应用......
  • 互联网应用之传递HTTP参数
    实例说明HTTP是一种网络传输协议,现实中大多数网页都是通过"HTTP://www."的形式实现显示的.再具体应用时,一些需要的数据都是通过参数传递的.和网络HTTP有关的是HTTPproto......
  • See-SQL审计平台介绍及部署
    背景线下数据库,成天有人要求运维执行这sql那sql的,又苦逼又容易背锅,问了下公司的DBA大神,推荐了see审计平台,执行sql有审计记录,留痕留痕留痕,重要的事情说三遍,即使是线下环境,......
  • 基于贝叶斯网(Bayes Netword)图模型的应用实践初探
    基于贝叶斯网(BayesNetword)图模型的应用实践初探1.贝叶斯网理论部分笔者在另一篇​​文章​​中对贝叶斯网的理论部分进行了总结,在本文中,我们重点......