首页 > 其他分享 >docker

docker

时间:2023-05-28 23:23:47浏览次数:64  
标签:容器 创建 nginx 镜像 docker 目录

镜像与容器
镜像:镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成
(当 docker 进入莫名其妙的 "编辑模式时", ctrl + c 可退出)
各种相关命令:
镜像相关:
(docker commit 容器名称(实) 镜像名称(形参) ;把容器生成为镜像,再由镜像转成 tar 包。tar 包可直接 copy 到任意 docker环境 直接load)

  1. 拉取镜像:docker pull image:tag (若没有指定标签版本,默认下载最新的)
  2. 查看镜像:docker images(查看运行中的镜像)
  3. 保存镜像:docker save -o [保存的目标文件名称] [镜像名称] (例:docker save -o nginx.tar nginx:latest,此时 会把镜像打包成 nginx.tar 包,此压缩包可在任意docker环境下加载, -o output;
    打包后的压缩包 会保存在 docker目录下, etc/docker )
  4. 删除镜像:docker rmi image:tag
  5. 加载镜像:docker load -i [docker环境下保存的镜像压缩包] (例:docker load -i nginx.tar, -i input; 加载命令要在docker目录下使用)
    容器相关:
  6. 创建并运行一个容器:docker run --name containerName -p 80:80 -d nginx (--name 给容器起名;-p 将宿主机端口与容器端口映射,冒号左侧是宿主机,右侧是容器端口; -d 后台运行容器;镜像名称)
  7. 停止容器:docker stop containerName
  8. 启动容器: docker run containerName(为启动时,第一次是启动;若已经启动了一个,在启动就是再创建另一个容器)
    (创建一个容器时同时要设置什么参数,可直接在 dockerhub查看;当启动一个"创建不当"的容器时,会有提示 该设置什么参数,然后记住要设置的参数。 把设置不当的原容器删了在从新设置)
  9. 删除容器:docker rm containerName/containerID(先停止,后删除;正常创建的docker容器可根据containerName删除,非正常创建的得用containerID删除)
  10. 挂载数据卷:
  • 首先在创建容器前创建要挂载的数据卷:docker volume create 数据卷(例:docker volume create html(要挂载的目录),查看 该数据卷具体信息包括具体位置 docker volume inspect 数据卷名称),
  • 在创建容器时 设置参数 -v containerFile(已创建好的数据卷):/root/file (例: docker run --name nginx -v html:/usr/share/nginx/html -p 80:80 nginx , 把 创建的该容器下的 html 目录挂载到 该宿主机(虚拟机)的/root/html 目录下,该宿主机必须先创建同名目录。此时修改挂载到 宿主机的目录文件就相当于修改容器的目录文件;注意数据卷和要挂载的内容都要正确且缺一不可 );
    (创建容器时,可先在dockerhub(https://hub-stage.docker.com/)上查阅创建镜像容器时要设置的基本属性,然后同时把 容器的"conf"文件挂载到宿主机上,然后具体的属性参数配置什么的都可以像windows版一样改。。。)
    (访问 https://hub-stage.docker.com/ 然后搜索镜像,点击右侧镜像,然后可阅读了解 使用该镜像的一些基本 用法,参数、、、等等等等等)

*. 查看运行中的容器:docker ps (docker ps -a ,查看所有容器,包括没运行的)
*. 进入容器执行命令:docker exec -it containerName bash (-it ,给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互; bash,进入容器后执行的命令,bashshiyoge linux终端交互命令)
*. 查看容器运行日志:docker logs

安装docker:

  1. 安装环境: yum -y install gcc-c++
  2. 安装必要的一些系统工具:yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 添加软件源信息:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. 更新并安装Docker-CE: yum makecache fast ; yum -y install docker-ce
  5. 开启Docker服务:systemctl start docker(手动开启) ; systemctl enable docker(开机自启)
  6. 测试是否安装成功:docker -v
  7. 配置镜像加速器: 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器;
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://ldu6wrsf.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

===========================
(创建一个空目录,然后放入 程序文件(jar 包)、运行环境(jdk8。tar.gz)以及 写好的Dockerfile文件;
此时可将准备好的包含程序的docker目录上传到虚拟机的任意目录,,然后进入该 目录下, docker build -t "生成镜像后的名字". ; 注意build命令最后还有一个 " . "

Dockerfile自定义镜像:(使用 docker build 报错时可能是缺少依赖 glibc.i686, 执行 yum install glibc.i686 即可)
(创建 Dockerfile空文件,然后写入环境、配置、依赖、函数库)
镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。

依赖镜像名和id

FROM centos:7

指定镜像创建者信息

MAINTAINER WYZ

切换工作目录,若不切换 则默认 root

WORKDIR /usr

执行 常规 linux命令

RUN mkdir/usr/local/java

ADD 是相对路径jar,把java添加到容器中。 与 COPY 不同的是, ADD 的若是压缩包会自动解压,而 COPY只是复制,不包括解压

ADD jdk-8u144-linux-i586.tar.gz /usr/local/java

ENV 配置环境变量

ENV JAVA_HOME /usr/local/java/jdk1.8.0_144
ENV CLASSPATH $JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar;$CLASSPATH
ENV PATH $JAVA_HOME/bin;$PATH

====================================
Docker 私有仓库:

  1. docker官网下载 DockerRegistry(基础版的Docker镜像仓库) : https://hub.docker.com/_/registry ;并加载到自己的docker里,
  2. 创建容器 docker run -d --name registry --restart=always -p 5000:5000 -v registry-data:/var/lib/registry registry
  3. 配置信任地址:vi /etc/docker/daemon.json "insecure-registries"=["http://[信任的主机地址]:8080"]
  4. 重启docker

推送镜像到私有仓库前必须先tag
docker tag nginx:latest [私有仓库地址及端口]/要推送的镜像名称(任意):版本 (例: docker tag nginx:latest 192.168.211.133:8080/nginx:1.0)

推送:docker push 192.168.211.133:8080/nginx:1.0
拉取:docker pull 192.168.211.133:8080/nginx:1.0


镜像:
容器:
仓库:

常用命令:

标签:容器,创建,nginx,镜像,docker,目录
From: https://www.cnblogs.com/mryd/p/17426883.html

相关文章

  • Docker Desktop 错误:必须在BIOS中启用 硬件辅助虚拟化和数据执行保护
    一、检查Hyper-V是否开启控制面板—》程序----》启用或关闭Windows功能二、重装DockerDesktopDocker的安装就不在赘述了,按照官网安装即可,需要注意的是win10家庭版的需要安装WSL2–即linux的虚拟机内核,官网也有详细安装步骤三、重新配置Hyper-V(生效)经过无数次重启,安......
  • docker 搭建zabbix-server
    一、zabbix的构架信息1.1zabbix-serverzabbix的server端,负责接受zabbix-agent的监控数据,并且提供各种zabbix的监控功能1.2database用户存储zabbix-agent,或者代理层的数据,本文只使用mysql1.3zabbix-webzabbix的web端,用户监控的展示和一些监控的配置1.4zabbix-java-g......
  • docker部署nacos集群
    1.环境准备准备4台服务器,一台安装nginx和mysql另三台做集群使用IP服务操作系统192.168.3.215Nginx/MysqlCentOS7.9192.168.3.216Nacos-1CentOS7.9192.168.3.217Nacos-2CentOS7.9192.168.3.218Nacos-3CentOS7.9     mysql选用5.7......
  • docker存储
    1、概念1.1、容器本地存储与Docke存储驱动容器本地存储:每个容器都被自动分配了内部存储,即容器本地存储。采用的是联合文件系统。通过存储驱动进行管理。容器本地存储空间:分层结构构成,由一个可写容器层和若干只读的镜像层组成。联合文件系统:Docker的一种底层技术,由存储驱动(StorageD......
  • Docker笔记五之Docker系统变量
    本文首发于公众号:Hunter后端原文链接:Docker笔记五之Docker系统变量当我们运行一个容器的时候是可以向容器内部指定某些变量值的,比如上一篇MySQL笔记中的参数是通过容器运行的时候-e来指定的。往容器里指定变量,有如下几种方法:Dockerfile中定义运行容器的时候指定变量参......
  • docker安装mysql
    转载请注明出处:1.从DockerHub下载MySQL镜像:dockerpullmysql2.运行MySQL容器,并将主机的3306端口映射到容器的3306端口:dockerrun-p3306:3306--namemysql-eMYSQL_ROOT_PASSWORD=your_password-dmysql其中,--namemysql指定容器的名称为mysql,-p3306......
  • docker的CMD和ENTRYPOINT
    在Dockerfile中,`CMD`和`ENTRYPOINT`都用于定义容器启动时要执行的命令或程序,但它们有一些关键的区别。1.`CMD`的作用:-`CMD`指令用于设置容器启动时的默认命令或程序。-`CMD`可以在Dockerfile中只出现一次,如果有多个`CMD`指令,只有最后一个指令会生效。-`......
  • dockerfile里的EXPOSE
    在Dockerfile中,`EXPOSE`指令用于声明容器运行时将要监听的网络端口。`EXPOSE`并不会实际打开容器的端口,它只是向用户和开发人员提供了容器内部服务的网络接口信息。通过在Dockerfile中使用`EXPOSE`,你可以向其他人传达容器暴露的网络服务和端口,以便更好地理解容器的使用和......
  • kubeadm极速部署Kubernetes,教你如何轻松处理容器运行瓶颈(Docker丨容器化技术丨DevOps
    kubeadm极速部署Kubernetes1.25版本集群前言随着Kubernetes的普及,快速部署和管理Kubernetes集群已成为容器领域的关键技能之一。本文将介绍使用kubeadm工具部署Kubernetes集群的方法,为您提供一个简单且高效的解决方案。不再需要自行构建集群,通过使用本文的方法,您将能够在最短的时......
  • Docker 安装
     安装软件软源和基础软件#安装要求的软件包yuminstallyum-utilsdevice-mapper-persistent-datalvm2-y#添加基础yum源和Dockerrepository。yum-config-manager--add-repohttp://mirrors.163.com/.help/CentOS7-Base-163.repoyum-config-manager--add-repohttp:/......