docker与Dockerfile

docker是一个完整的容器管理系统

docker提供了一组命令,让用户更加方便的直接使用容器技术,不需要过多的关心底层内核技术
优点是起个容器跟起进程一样快速,缺点是 公用LINUX内核,安全性有先天缺陷,监控容器和容器排查比较困难,SELINUX机制不好处理

部署docker
提前准备带yum源的centos7.0以上的linux系统

yum -y install docker  ###安装docker
systemctl enable docker ###开机自启
systemctl start docker ###启动容器
由于docker的容器都是由镜像启动的
镜像是容器的核心,采用的是读时复制技术确保底层技术不丢失
查看镜像命令
docker images ####查看docker镜像
docker rmi  镜像名字或者id ##删除镜像  (删除镜像需要对面的容器关闭才能删除)
docker save 镜像 -o /opt/镜像.docker  ###将docker中的镜像另存为目录中
docker load -i /opt/镜像.docker  ###将目录中的镜像导入docker
docker tag  ###修改镜像名字
docker run  ###启动容器
docker commit [容器ID]  生成镜像 ##根据当前容器生成新镜像
docker rm   ###删除容器
docker exec ###进入正在运行的容器
docker ps  ### 查看正在运行的容器  docker ps -a 查看全部的容器不管是否运行

拉取博主docker hub centos镜像

docker pull 847179190/repo:centos  

在这里插入图片描述

docker images 查看镜像

在这里插入图片描述

docker run -it docker.io/847179190/repo:centos /bin/bash

在这里插入图片描述

exit 和 ctrl+p+q 都是退出容器 不同点是 exit退出容器关闭容器
ctrl+p+q退出容器保持容器状态

docker exec -it d1 /bin/bash 再次进去已开启的容器

根据当前容器生成新镜像做到自定义镜像

docker commit d1 diy1

在这里插入图片描述

初步的docker 部署使用方法介绍完 建议去docker hub注册账户使用docker hub镜像仓库达到快速部署,下面开始讲Dockerfile

Dockerfile 语法

FROM   ####基础镜像  根据什么镜像来盖
MAINTAINER #### 镜像创建者信息
EXPOSE ### 开放端口
ENV ### 设置变量
ADD ###复制文件到镜像 复制文件需和Dockerfile在一个目录
RUN  ###制作镜像时执行的命令 可以多个
WORKDIR ###自定义容器默认的工作目录
CMD #### 容器启动时执行的命令,只能有一条

使用案例:

mkdir /opt/docker ; cd /opt/docker
echo yke  > /opt/docker/index.html
vim /opt/dcoker/Dockerfile
FROM 847179190/repo:centos  ###根据旧镜像
RUN  yum -y install httpd  ###执行命令
ADD index.html /var/www/html/   ###将/opt/docker/index.html 添加进容器
EXPOSE 80     ####开放端口
EXPOSE 443
ENV EnvironmentFile=/etc/sysconfig/httpd  ##一般在/usr/lib/systemd/system/http.service里面看   ENV哪项
CMD ["httpd","-DFOREGROUND"]  #####也在/usr/lib/systemd/system/http.service start变量
编辑完后再确认下是否进入cd /opt/docker/下,确保目录有Docfile和 index.html 然后
docker build -t diy2  .  ### diy2为生成镜像名字  。很重要表示当前目录

在这里插入图片描述

SUCCESSFULLY显示成功
docker run -itd -p 80:80 diy2  ##-p 真机端口:容器端口 端口映射
curl localhost

接下来是docker 持久化
mkdir /opt/html/ ;  echo dyt > /opt/html/index.html
docker run -itd -p 80:80 -v /opt/html:/var/www/html/ diy2

在这里插入图片描述

如果容器有目录则覆盖 没有目录则创建 容器本事是不存储任何数据的

可以搭配nfs做到nginx http共享html页面 在配合inotifywait +rsync 做到实时监控实时同步 web代码

Dockerfile到此结束

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker部署Dockerfile是通过使用Docker来构建和运行镜像的一种方式。可以使用手动部署的方式来熟悉部署流程,也可以使用插件方式来编写Dockerfile文件。 对于手动部署,首先需要修改docker配置,开放远程部署(上传)端口。可以通过编辑docker.service文件,在ExecStart=后添加配置"-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock"来实现。 对于使用插件的方式,则是通过配置Dockerfile的命令参数来生成Dockerfile文件,并最终根据jar包和Dockerfile构建镜像。 在进行Docker部署之前,首先需要进行Docker的安装和部署。具体的流程包括配置Docker、测试Docker、镜像的分层以及镜像的构建。 Docker部署Dockerfile的具体步骤包括: 1. 配置Docker,确保远程部署(上传)端口已经开放。 2. 使用插件方式或手动方式编写Dockerfile文件。 3. 将需要的jar包和Dockerfile放置在同一个目录下。 4. 使用命令行工具进入到该目录,并执行docker build命令来构建镜像。 5. 根据构建后的镜像,运行相应的容器。 通过以上步骤,就可以成功部署Dockerfile并运行相应的容器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [docker实战之Dockerfile构建部署项目(三)](https://blog.csdn.net/weixin_42322925/article/details/121697564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker 1 (安装部署Dockerfile详解)](https://blog.csdn.net/qq_38664479/article/details/119488160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值