首页 > 其他分享 >容器操作,应用部署,迁移与备份,Dockerfile

容器操作,应用部署,迁移与备份,Dockerfile

时间:2023-04-13 22:33:40浏览次数:32  
标签:容器 centos 备份 vim mysql 镜像 docker Dockerfile

容器操作,应用部署,迁移与备份,Dockerfile

上节回顾

# 1 docker 启动,停止,查看状态命令
	systemctl start docker
    systemctl stop docker
    systemctl status docker
    docker info  # 查看详情
    systemctl enable docker # 开机自启动
    
    
# 2 配置镜像源,拉取镜像时,速度快
	vim /etc/docker/daemon.json
	# 阿里云的:每个账户会分配
    
    
# 3 镜像操作
	-搜索镜像:在网站上搜索
    -拉取镜像  docker pull 镜像名字:标签
    -查看本地镜像  docker images   或者  docker image ls
    -删除镜像  docker rmi 镜像id号
    -一次性删除所有镜像  docker rim `docker images -p`
    
# 4 容器操作
	-查看正在运行的容器  docker ps
    -查看所有容器  docker ps -a
    
    -创建并运行容器
    docker run -id/it  --name=名字 -p 8080:8080 -p 80:80 -v /home/lqz:/lqz 镜像名字:标签
                    
    -在容器上执行命令
    docker exec 容器id 命令
    docker exec -it 容器id /bin/bash  # exit 退出

容器操作

# 启动容器
	docker start 容器id
# 停止容器
	docker stop 容器id

# 文件拷贝
	# 容器的文件copy到宿主机上(不是在容器内执行)
    docker cp 容器名称:容器目录 需要拷贝的文件或目录
    docker cp  20fd8:/home/lqz.txt /home/lqz.txt
    # 宿主机的文件copy到容器中
    docker cp 需要拷贝的文件或目录 容器名称:容器目录
    docker cp ./lqz.txt 20fd894a3f20:/home/lqz.txt

image

# 查看容器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+djan

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

#在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'''

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码

# 创建并运行容器
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  


(3)远程登录mysql

连接宿主机的IP ,指定端口为33306
# 创建库,创建表,插入数据
# 关闭容器,删除容器,myslq的容器没了,但是数据在宿主机上放着
# 再运行起一个容器,做好目录映射,数据都回来了

image

image

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操作

image

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 路径,看到页面就是修改后的

image

image

迁移与备份

# 容器保存为镜像
	-运行一个centos容器
    docker run -id --name centos_vim centos:7
    -在容器中装vim
    docker exec -it a6e240 /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是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像
    1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;
    2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;
    3、对于运维人员:在部署时,可以实现应用的无缝移植。
常用命令
命令 作用
from(基础镜像) 用来说明基于哪个基础镜像来构建
MAINTAINER NAME 声明镜像的创建者
ENV KEY value 设置环境变量
RUN command 是Dockerfile核心部分,容器内执行命令,用于安装软件、配置环境等操作
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
WORKDIR XXX 设置工作目录,运行起这个容器,来到的路径就是这个路径
# 构建一个带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,和文件夹,文件是否存在

image

标签:容器,centos,备份,vim,mysql,镜像,docker,Dockerfile
From: https://www.cnblogs.com/zx0524/p/17316803.html

相关文章

  • iptables备份和恢复配置
    [root@hostname~]#iptables-save>/usr/myipt.rule #备份规则至/usr/myipt.rule[root@hostname~]#iptables-F #删除规则[root@hostname~]#iptables-nvL[root@hostname~]#iptables-restore</usr/myipt.rule#恢复规则[root@hostname~]#iptables-nvL......
  • docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile
    容器操作#启动容器dockerstart容器id#停止容器dockerstop容器id#文件拷贝先创建文件mkdir:文件夹vivimtouch:文件#容器的文件copy到宿主机上(不是在容器内部操作)dockercp容器名称:容器目录需要拷贝的文件或目录dockercp......
  • docker-day3——docker应用部署、docker迁移与备份、Dockerfile
    目录一、应用部署1.1mysql部署1.2nginx1.3redis1.4部署项目的一些讲解二、迁移与备份三、Dockerfile四、作业1、什么是迭代器,生成器,装饰器2、django的信号用过吗?如何用,干过什么3、Dockerfile用过吗?常用命令有哪些一、应用部署补充知识点:容器之间互相是可以ping通的但是......
  • apko不依赖dockerfile基于apk 包构建oci 镜像的工具
    可以方便的基于apk包进行oci镜像的构建以及发布包含的特性可重复执行同时确认二进制文件一致快速小sbom支持服务支持,基于s4安装可以通过goinstall以及docker模式运行goinstallchainguard.dev/apko@latest使用配置contents:......
  • openGauss 之物理备份与恢复实践操作(gs_probackup)
    openGauss之物理备份与恢复实践操作(gs_probackup)本文出处:https://www.modb.pro/db/426207一、gs_probackup简单介绍gs_probackup是一个用于管理openGauss数据库备份和恢复的工具,支持全量备份、增量备份、定期备份和远程备份,还可以设置备份的留存策略。二、gs_probackup使用......
  • 【Docker】容器操作 mysql部署 redis部署 nginx部署 迁移与备份 Dockerfile
    目录上节回顾今日内容1容器操作2应用部署2.1mysql部署2.2redis2.3nginx3迁移与备份4Dockerfile练习上节回顾#1docker启动,停止,查看状态命令 systemctlstartdockersystemctlstopdockersystemctlstatusdockerdockerinfo#查看详情systemc......
  • Spring IOC容器注解大全—基于Java的容器配置
    本节介绍了如何在你的Java代码中使用注解来配置Spring容器。它包括以下主题。基本概念:@Bean 和 @Configuration通过使用 AnnotationConfigApplicationContext 实例化Spring容器使用 @Bean 注解使用 @Configuration 注解构建基于Java的配置Bean定义配置PropertySource 抽象......
  • 1 容器操作 、2 应用部署、3 迁移与备份、 4 Dockerfile
    目录1容器操作2应用部署2.1mysql部署2.2redis2.3nginx3迁移与备份4Dockerfile1容器操作#启动容器 dockerstart容器id#停止容器 dockerstop容器id#文件拷贝 #容器的文件copy到宿主机上(不是在容器内执行)dockercp容器名称:容器目录需要拷贝的文件或......
  • 深入了解Kubernetes(K8s):现代化容器编排和管理平台
    Kubernetes(简称K8s)是一种开源的容器编排和管理平台,用于自动化应用程序在容器化环境中的部署、扩展、管理和运维。Kubernetes最初由Google开发,并于2014年发布为开源项目,现在由CloudNativeComputingFoundation(CNCF)维护和管理。Kubernetes的设计目标是简化容器应用的部署、管理和......
  • mariabackup 备份 MariaDB 数据库
    1、安装mariabackupdnf-yinstallmariadb-backup2、创建备份目录并执行备份操作#mkdir/data/backup-p#mariabackup--backup--target-dir/data/backup/-uroot[00]2023-04-1311:50:31ConnectingtoMySQLserverhost:localhost,user:root,password:not......