最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

天天热门:容器操作,应用部署,迁移与备份,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
# 查看容器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/mysqlmkdir /home/mysql/conf.dmkdir /home/mysql/data/vim /home/mysql/my.cnf#在my.cnf进行配置"""[client]default-character-set=utf8[mysqld]user=mysqlcharacter-set-server=utf8default_authentication_plugin=mysql_native_passwordsecure_file_priv=/var/lib/mysqlexpire_logs_days=7sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONmax_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的容器没了,但是数据在宿主机上放着# 再运行起一个容器,做好目录映射,数据都回来了

redis部署

# 拉取redis镜像docker pull redismkdir /root/datavim /root/redis.confbind 0.0.0.0daemonize NOprotected-mode norequirepass 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操作

nginx部署

# 拉取nginx镜像docker pull nginx# run起容器# docker run -id --name nginx -p 80:80 nginx    # /usr/share/nginx/htmldocker 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 a6e240 /bin/bashyum 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 pull2.用容器做成的镜像     docker commit3.把备份的恢复         docker load4.使用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 DockerfileFROM centos:7MAINTAINER lqzENV name lqzRUN yum install vim -yRUN mkdir /lqzRUN touch /lqz/ss.pyRUN echo "print(1)" >/lqz/ss.pyCOPY /root/redis.conf /lqz/redis.confWORKDIR /lqz# 基于dockerfile构建镜像docker build -t="centos_lqz_vim" .# 基于这个镜像运行容器 docker run -id --name xx centos_lqz_vim# 进入到容器docker exec -it xx /bin/bash# 验证vim,和文件夹,文件是否存在

关键词: