首页 > 其他分享 >docker03 容器操作 应用部署 迁移备份 dockerfile

docker03 容器操作 应用部署 迁移备份 dockerfile

时间:2023-04-14 19:55:25浏览次数:34  
标签:容器 centos 备份 mysql redis vim docker03 docker dockerfile

今日内容详细

目录

1 容器操作

# 启动容器
	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

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

2 应用部署

2.1 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      
        
     
    
# 创建库,创建表,插入数据

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

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

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

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

3 迁移与备份

# 容器保存为镜像
	-运行一个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

4 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 lqz 	# 设置工作目录,运行起这个容器,来到的路径就是这个路径
    
    
    
# 构建一个带vim的centos镜像
vim Dockerfile


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




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

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

标签:容器,centos,备份,mysql,redis,vim,docker03,docker,dockerfile
From: https://www.cnblogs.com/qian-yf/p/17319675.html

相关文章

  • Docker: common container Dockerfile
     mavenFROM--platform=amd64maven:3-openjdk-18-slimRUNcd/etc/apt&&>sources.list&&cat>sources.list<<EOFdebhttps://mirrors.ustc.edu.cn/debianbullseyemaincontribnon-freedeb-srchttps://mirrors.ustc.edu.cn/deb......
  • docker-day4——Dockerfile、docker私有仓库、dockercompose介绍、dockercompose部署f
    目录一、Dockerfile1.1常用和不常用命令1.2dockerfile构建一个djagno项目二、docker私有仓库2.1镜像传到官方仓库2.2镜像分层2.3私有仓库搭建三、dockercompose介绍四、dockercompose部署flask+redis项目4.1新建flask项目app.py4.2编写Dockerfile--》用于构建flask项目的......
  • docker -DockerFile
    1.dockerfile安装,编写我们的镜像来源:1.远程仓库拉取2.用仓库做成的镜像3.把备份的恢复4.使用dockerfile构建Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像。使用dockerfile不需要先创建容器在里面加东西,而是直接可以在镜像中......
  • Jenkins 备份配置
    1、插件https://plugins.jenkins.io/thinBackup/2、系统管理--ThinBackup--Settings#创建备份目录并授权mkdir-p/data/backupchown-Rjenkins./data/backup ......
  • 安全参考和书安 NPM、PYPI、DockerHub 备份
    安全参考2013Dockerdockerpullapachecn0/hackcto-2013dockerrun-tid-p<port>:80apachecn0/hackcto-2013#访问http://localhost:{port}查看文档PYPIpipinstallhackcto-2013hackcto-2013<port>#访问http://localhost:{port}查看文档NPMnpminstall-ghackcto-e......
  • CEH 讲义 NPM、PYPI、DockerHub 备份
    CEHv10ModuleAllInOneDockerdockerpullapachecn0/ceh-v10-mod-allinonedockerrun-tid-p<port>:80apachecn0/ceh-v10-mod-allinone#访问http://localhost:{port}查看文档PYPIpipinstallceh-v10-mod-allinoneceh-v10-mod-allinone<port>#访问http://loca......
  • docker容器操作,应用部署,迁移与备份,Dockerfile
    目录容器操作应用部署mysql部署redisnginx迁移与备份容器保持为镜像镜像备份和恢复Dokcerfile镜像从哪里来使用Dockerfile来构建什么是DockerfileDockerfile的命令构建一个带vim的centos镜像基于Python3.8构建一个能够运行你这个程序的镜像容器操作启动容器dockerstart容器i......
  • 容器操作,应用部署,迁移与备份,Dockerfile
    容器操作,应用部署,迁移与备份,Dockerfile上节回顾#1docker启动,停止,查看状态命令 systemctlstartdockersystemctlstopdockersystemctlstatusdockerdockerinfo#查看详情systemctlenabledocker#开机自启动#2配置镜像源,拉取镜......
  • 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......