首页 > 数据库 >docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile

docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile

时间:2023-04-13 21:22:13浏览次数:44  
标签:容器 centos redis vim nginx mysql docker

容器操作

# 启动容器
     docker start 容器id
# 停止容器
     docker stop 容器id
# 文件拷贝
     先创建文件 mkdir:文件夹  vi vim  touch:文件
     # 容器的文件copy到宿主机上(不是在容器内部操作)
     docker cp 容器名称:容器目录 需要拷贝的文件或目录
     docker cp  20fd8:/home/lqz.txt /home/lqz.txt
     # 宿主机的文件copy到容器中
     docker cp 需要拷贝的文件或目录 容器名称:容器目录
     docker cp ./lqz.txt 20fd894a3f20:/home/lqz.txt
# 查看容器IP地址
     docker inspect 容器名称  # 查看容器的详细描述  很多
     docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

    # 在多个容器之间是可以ping通的
    # centos:172.17.0.3
    # mysql:172.17.0.2

# 删除容器(删除已停止的容器)
    docker rm 容器id  
    docker rm `docker ps -a -q`
    
 # 无状态的服务
     myslq reids
     uwsgi+django

应用部署

mysql部署

docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

# 做目录映射:data文件,配置文件
# 创建文件夹
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
vim /home/mysql/my.cnf
[client]
default-character-set=utf8
[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 /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7      
        
     
    
# 创建库,创建表,插入数据

# 关闭容器,删除容器,mysql的容器没了,但是数据在宿主机上放着

# 再运行起一个容器,做好目录映射,数据都回来了

redis

# 拉取redis镜像
docker pull redis
mkdir /root/data
vim /root/redis.conf

bind 0.0.0.0
daemonize NO
protected-mode no
requirepass 123456

# 运行
docker run -id  -p 6379:6379 --name redis -v /root/redis.conf:/etc/redis/redis.conf -v /root/data:/data redis  redis-server /etc/redis/redis.conf
            

# 远程链接redis操作

redis.conf 文件 删了再重新搞 通过该文件跑在前台 一直运行

nginx

# 拉取nginx镜像
docker pull nginx

# run起容器
# docker run -id --name nginx -p 80:80 nginx
    
# /usr/share/nginx/html
docker run -id --name nginx -p 80:80 -v /root/html:/usr/share/nginx/html nginx
# 以后只需要修改宿主机的/root/html 路径,看到页面就是修改后的

迁移与备份

# 容器保存为镜像
    运行一个centos容器
    docker run -id --name centos_vim centos:7
    在容器中装vim
    docker exec -it 容器ID号 /bin/bash
    yum install vim -y
    
    把容器做成镜像(centos+vim)
    docker commit centos_vim centos_vim_image

     把centos_vim 容器删除
    docker rm centos_vim
     基于新构建的镜像,运行成容器
    docker run -id --name centos_vim centos_vim_image:latest
     进入到容器中,查看,软件都在
    docker exec -it 容器ID号 /bin/bash
# 镜像备份和恢复
  docker save -o centos_vim_image.tar centos_vim_image
     删除容器,删除镜像
     把备份的镜像恢复
    docker load -i centos_vim_image.tar

Dockerfile

# 镜像从哪里来的?
    1 远程仓库拉取的 docker pull
    2 用容器做成的镜像 docker commit 
    3 把备份的恢复 docker load
    4 使用Dockerfile来构建
# 什么是Dockerfile
    Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像
    
# Dockerfile的命令
    FROM 基础镜像         #基于哪个基础镜像来构建
    MAINTAINER lqz       # 声明镜像的创建者
    ENV key value       # 设置环境变量 (可以写多条)
    RUN command        #是Dockerfile的核心部分(可以写多条)
    ADD source_dir/file dest_dir/file 	#将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
    COPY source_dir/file dest_dir/file 	# 和ADD相似,但是如果有压缩文件并不能解压
    WORKDIR path_dir # 设置工作目录,运行起这个容器,来到的路径就是这个路径
    
    
    
# 构建一个带vim的centos镜像
vim Dockerfile

FROM centos:7
MAINTAINER lqz
ENV name lqz
RUN yum install vim -y
RUN mkdir /lqz
RUN touch /lqz/ss.py
RUN echo 'print(1)' >/lqz/ss.py
COPY /root/redis.conf /lqz/redis.conf
WORKDIR /lqz


# 基于dockerfile构建镜像
docker build -t='centos_lqz_vim' .

# 基于这个镜像运行容器
 docker run -id --name xx centos_lqz_vim
# 进入到容器
docker exec -it xx /bin/bash
# 验证vim,和文件夹,文件是否存在

标签:容器,centos,redis,vim,nginx,mysql,docker
From: https://www.cnblogs.com/xm15/p/17316447.html

相关文章

  • MySQL日志、事务原理 -- undolog、redolog、binlog、两阶段提交
        1.undolog1.1 undolog–原子性   1.2回滚日志,记录数据被修改前的信息,属于逻辑日志什么是逻辑日志?比如我们执行一条delete语句,undolog里边记录的是相反的操作insert记录【相当于存放的是操作逻辑语句,而不是数据】逻辑日志好处比如全表更新,如果......
  • mysql 数据迁移与查询更新
    业务前景:在旧表中新增ch类型字段,以ch字段作为查询条件,为了不产生影响,需要对ch字段进行更新操作,ch字段源于base字段json格式中的一部分。  解决方案:1) 字段迁移updatereported_datasetch=base; 2)查询后更新updatereported_datasetch=(SELECTSUBS......
  • Nginx 常用配置
    一、rewrite在/usr/share/nginx/html/下创建abc.html文件[root@localhosthtml]#cat/usr/share/nginx/html/81/abc.htmlabcnginx配置如下server{listen81;server_namelocalhost;#access_log/var/log/nginx/host.access.logmain;lo......
  • redis 工具类
    redis工具类/***Redis工具类*/@ComponentpublicclassRedisUtil{@ResourceprivateRedisTemplate<String,Object>redisTemplate;publicRedisUtil(RedisTemplate<String,Object>redisTemplate){this.redisTemplate=redisT......
  • zabbix监控远程MySQL数据库
    zabbix_agent客户端操作:1.数据库用户授权登录mysqlmysql>grantallon*.*tozabbix@'localhost'identifiedby"123";mysql>flushprivileges;2.cp模板到/usr/local/zabbix/etc/zabbix_agentd.conf.d/cp/root/zabbix-4.2.6/conf/zabbix_agentd/userparamet......
  • 在Windows环境下搭建Redis集群
    安装Redis下载Windows版本Redis下载地址:https://github.com/MicrosoftArchive/redis/releases我下载了当前最新版本:Redis-x64-3.0.504.zip下载后,将文件解压到D:\Program_Files\redis\redis-cluster目录(目录可以自定义,路径上不要有空格)创建Redis集群节点Redis集群至少需要6个节点,3......
  • 聊聊MySQL三大核心日志的实现原理?
    MySQL几乎成为互联网行业使用的最多的开源关系型数据库,正因如此,MySQL也成为各大互联网公司面试中必问的数据库,尤其是MySQL中的事务实现机制和三大核心日志的实现原理。今天,我们就重点聊聊MySQL三大核心日志的实现原理。 1.MySQL日志说起MySQL的日志,有三种类型的日志对于MySQ......
  • 【Docker】容器操作 mysql部署 redis部署 nginx部署 迁移与备份 Dockerfile
    目录上节回顾今日内容1容器操作2应用部署2.1mysql部署2.2redis2.3nginx3迁移与备份4Dockerfile练习上节回顾#1docker启动,停止,查看状态命令 systemctlstartdockersystemctlstopdockersystemctlstatusdockerdockerinfo#查看详情systemc......
  • Redis基础数据结构
    五种基础数据结构:string(字符串)、list(列表)、set(集合)、hash(集合)和set(有序集合)使用命令redis-cli即可连接使用go语言代码连接redis:import( "github.com/go-redis/redis")varc*redis.Clientfuncmain(){ c=redis.NewClient(&redis.Options{ Addr:......
  • Windows 本地安装mysql8.0
    前言看了网上许多关于Windows本地安装mysql的很多教程,基本上大同小异。但是安装软件有时就可能因为一个细节安装失败。我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的。现我将自己本地安装的步骤总结如下,如有不对的地方,敬请大家批评指正!!!安装环境:win7/10一、......