今日内容概要

  • 服务部署
  • 迁移与备份
  • dockerfile
  • 私有仓库

内容详细

1、服务部署

# 装 mysql  redis ---》源码编译安装--》启

# 有了docker后,容器操作系统+软件---》拉取一个redis镜像---》运行起来---》容器里就有 redis服务了---》做好端口映射---》就相当于在宿主机上装了个虚拟机,虚拟机里装了个redis # redis的部署
-如果本地没有这个镜像---》运行镜像---》会先拉取--》然后在运行
docker pull redis -容器中的redis运行时候,有配置文件,用我写的配置文件,-v 映射 (宿主机写个配置文件,让容器中的redis用) -redis运行产生数据--》放在容器中--》容器删除数据就没了---》数据映射到宿主机-->以后删了容器,数据还在---》只要再启动起一个容器---》做好目录映射,数据自然都在了 ### 这个,数据目录没有映射出来,配置文件使用容器默认的---》但是这种不用
docker run -di --name=myredis -p 6379:6379 redis ##### 操作流程
# 第一步:启动容器,名字叫 redis_6379,配置文件自己写,数据目录映射出来,两个目录映射:配置,数据目录,运行容器的时候,执行 redis-server /etc/redis/redis.conf 配置文件
docker run -id -p 6379:6379 --name redis_6379 -v /root/s20/redis.conf:/etc/redis/redis.conf -v /root/s20/data:/data redis redis-server /etc/redis/redis.conf docker logs 容器名字 # 查看容器日志 # 第二步:远程连接redis
-存入数据
bgsave # 第三步:删除容器
docker rm id号 # 第四:再启动reddis
docker run -id -p 6379:6379 --name redis_6379 -v /root/s20/redis.conf:/etc/redis/redis.conf -v /root/s20/data:/data redis redis-server /etc/redis/redis.conf ######### mysql 部署
docker pull mysql:5.7 # -e 是环境变量---》容器运行时传入,看文档才知道有哪些参数
# 使用了默认配置,把数据目录映射出来
# root用户默认不允许远程登陆
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # 进去授权 允许远程登陆
grant all privileges on *.* to 'root'@'%' identified by 'Lqz12345?'; # 配置文件用宿主机的,数据目录映射出来到宿主机
# mysql的配置文件 自行创建配置文件 my.cnf
[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 # 运行容器
docker run -di -v /root/s20/mysql/data/:/var/lib/mysql -v /root/s20/mysql/conf.d:/etc/mysql/conf.d -v /root/s20/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # nginx部署
docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx

2、迁移与备份

# python容器--》装了django   容器反打包成镜像

# 把容器做成镜像
docker commit 容器名字 镜像名字
docker commit django django2.2.2 # 镜像打包成压缩包
docker save -o django2.2.2.tar django2.2.2 # cp给别人---》释放成镜像---》运行起容器
docker load -i django2.2.2.tar

3、dockerfile 应用

# 把容器打包成镜像---》压成压缩文件--》复制给别人---》压缩包很大--》速度慢

# 特别轻量级的方式,可以构建出镜像来,把一个特别小的文件复制给别人,别人一运行就有了镜像

# 它就是一个固定的 Dockerfile  文件,里面写了一些命令
# 通过 docker build -t='django2.0' . 把这个文件构建成镜像 ### dockerfile的命令
FROM image_name:tag # 定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name # 声明镜像的创建者
ENV key value # 设置环境变量 (可以写多条)
RUN command # 是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file # 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
source_dir/file dest_dir/file # 和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir # 设置工作目录 # Dockerfile演示
FROM python:3.8.13
MAINTAINER lqz
ENV pwd 123
RUN pip install django==2.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN mkdir lqz
ADD ./redis.conf /home/redis.conf
WORKDIR /home # 工作路径是哪 docker build -t='django2.2.2' . # 创建镜像

4、私有仓库

# docker pull 都是从hub.docker.com 拉的

# 我们公司自己做的镜像,在上面没有---(我可以传上去,不安全)

# 自己搭建私有仓库
https://www.cnblogs.com/liuqingzheng/p/16315254.html

最新文章

  1. sp_addlinkedserver '(null)' is an invalid product name
  2. 拆分SharePoint 2013 中CreatedModifiedInfo 的时间
  3. oracle数据库开启的时候 是先开监听还是先开主服务,关数据库的时候呢???
  4. ofbiz进击 第三节。 各个关键文件的说明与作用
  5. 我的android学习经历22
  6. [Everyday Mathematics]20150224
  7. centos7 安装php5.6.0 、nginx1.7.4、phpssdbadmin
  8. sqlcode、sqlerrm
  9. Windows 8 和 Windows 8.1 中对插件和 ActiveX 的支持
  10. 10_java基础——构造器里调用构造器
  11. 人生苦短,我用Python(1)
  12. 如果filename的value有值 说明支持存储
  13. javascript 面向过程和面向对象
  14. cocos2dx 3.x(打开网页webView)
  15. Spring MVC开启注解
  16. 通过命令行Pandoc 来转换文件
  17. PRM路径规划算法
  18. Jmeter的log输出控制
  19. BETA随笔6/7
  20. [svc]ip routing和no ip routing

热门文章

  1. Ubuntu之安装Gradle
  2. OllyDbg---循环、串操作和寻址方式
  3. 无法连接linux虚拟机,ping不通
  4. 介绍一款倍受欢迎的.NET 开源UI库
  5. Nuxt.js(二、解决首屏速度与SEO)
  6. SimpleDateFormat类的安全问题,这6个方案总有一个适合你
  7. acwing刷题-放养又没有完全放养
  8. 2021.08.09 P6225 抑或橙子(树状数组)
  9. 手写一个bind
  10. Oracle with使用方法以及递归