首页 > 其他分享 >docker容器

docker容器

时间:2023-07-14 20:22:25浏览次数:33  
标签:容器 compose -- 镜像 docker ID

1.docker简介

通过内核虚拟技术,来提供资源隔离和安全保障

开源的应用容器引擎go语言开发,源代码托管在githup,一次编译、到处运行。

组成:server端和client端(C/S架构),server挂掉所有服务挂掉(弊端)

Docker组件

镜像(image):一个只读模板可是完整的操作系统

容器(container):启动的Linux简化版系统    

仓库(repository)存放镜像文件

Docker Hub 官方维护仓库    docker pool 国内镜像

Docker特点:简化配置 一次配置到处运行、代码流水线管理、提升开发效率、应用隔离、服务器群整合、多用户环境、快速部署

3. docker镜像

查看 images/ 搜索 search/ 获取 pull/ 删除 rmi/ 导出 save/ 导入 load

docker images   //查看镜像      docker search   //搜索镜像

docker pull 镜像名      //获取(下载镜像文件),没有则安装

dokcer rmi 镜像ID     //删除镜像(docker rmi -f 镜像ID   //强制删除) 删除镜像前先删除镜像中所有容器(dokcer rm 容器ID)

docker save centos > /opt/centos.tar.gz     //导出一个镜像

docker load < /opt/centos.tar.gz           //导入一个镜像

systemctl restart  docker.service 启动docker服务

4. docker容器

查看 ps -a/ 启动 run/ 停止 stop/ 进入容器 exec/ 

删除 rm/ 查看容器ID ps -a -q

docker ps -a   //查看所有容器,运行或关闭的

dokcer ps -a -l  //查看容器,(-a 显示所有容器,docker ps 只显示运行的容器)

docker run --name -h hostname (或docker start 容器ID)  //启动容器

docker stop 容器ID   //停止容器

Docker exec 容器ID (或 docker attach 容器ID)推荐nsenter  //进入容器

Docker rm 容器ID    //删除容器(删除前需要管理) (或docker rm -f 容器ID  //可以删除运行的容器,慎用)

dokcer ps -a -q    //查看容器ID, docker kill $(docker ps -a -q)  //杀死所有运行的容器ID

例子:docker run --name mydocker -it centos /bin/bash     (//--name 指定命令,-i 打开,-t -t  分配一个伪终端  //进入容器)

5. docker网络

Docker run -d -P nginx    //随机端口映射  (docker logs 容器ID  //查看Nginx日志)

指定端口映射:

-p  主机端口:容器端口

-p  ip:主机端口:容器端口  

-p  ip::容器端口

-p  主机端口:容器端口:UDP   (指定协议)

例子:docker run -d -p 81:80 nginx   //指定端口,主机81端口映射容器80端口

6. docker存储

数据卷:

-v  /data        //自动挂载

-v  src:dst       //指定挂载路径(源:目标)

例子:docker run -it --name volume-test -v /data centos     

 //docker容器创建数据卷/data

/var/lib/docker/volumes  查看挂载路径,挂载到物理机该路径下

(docker inspect 容器ID   //查看挂载路径,所有信息)。 

例子:挂载时可指定权限

docker run -it --name volume-test1 -v /opt:/opt centos  

//docker容器指定挂载路径(映射)

docker run -it --name volume-test1 -v /opt:/opt:ro centos  //ro 只读,rw 读写

docker run -it -v ~/.bash_history:/.bash_history  centos  //挂载

数据卷容器:

让一个容器访问另一个容器的卷  --volumes-from

docker run -d --name nfs -v /data centos 

//先起一个容器挂载/data目录,作为数据卷容器(-d  创建直接启动)

docker run -it --name test --volumes-from nfs centos    //创建数据卷容器

好处:后期不挂载,多个容器直接指向一个容器(数据卷容器,容器停止还是可以访问)

7.dockerfile

docker build /opt/nginx/Dcokerfile    //构建镜像,纯文本文件

镜像构建语法:

FROM         基础镜像(它的妈妈) --第一条指令

MAINTAINER   维护者信息(创造者)

RUN          命令前加run(你想让他干啥)

ADD          copy文件,会自动解压(往肚子里放文件)

WORKDIR      当前工作目录(相当于Cd)

VOLUME       目录挂载(存放行李的地方)

EXPOSE        端口(要打开的门是啥)

RUN          进行要一直运行下去(奔跑吧,兄弟)

制作镜像:

dcoekr commit -m "my nginx"  镜像ID  huchao/mynginx:v1

(huchao/mynginx 仓库名     v1:tag,版本)

 

例子:vi /opt/nginx/Dockerfile 

#This dcoker file

#VERSION

#Author: HU CHAO

#Base image

FROM centos

 

#Maintainer

MAINTAINER chao.hu  [email protected]

 

#Commands

RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-rease-latest-7.noarch.rpm

RUN yum -y install nginx

ADD index,htl /usr/share/nginx/html/index.html

RUN echo "daemon:" >> /etc/nginx/nginx.conf

EXPOSE 80

CMD["nginx"]

8.私有仓库

Dockerhub   -->github

docker registry(私有) --> gitlab(私有)

Docker pull  registry           //安装私有仓库

docker run -d -p 5000:5000  registry       //运行容器

docker tag huchao/mynginx:v3 192.168.8.130:5000/huchao/mynginx:latest

9.Docker-compose

负责对docker容器集群的快速编排

将管理的容器分为三层:工程(project)、服务(service)、容器(container)

工程配置文件默认为:docker-compose.yml

docker-compose Python语言编写,调用docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持docker API,就可以在其上利用compose进行编排

安装:yum -y install epel-release  && yum -y install python-pip

pip install --upgrade pip   //更新pip 

Pip install docker-compose  //安装docker-compose

Docker-compose version   //查看版本

常用命令:

Docker-compose up  

Docker-compose ps    //列出项目中所有容器

Docker compose stop  //停止正在运行的容器,可以通过docker-compose start 再次启动

docker-compose down   //停止或删除容器、网络、卷镜像

docker-compose rm  //删除所有(停止状态的)服务容器

Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分

标签:容器,compose,--,镜像,docker,ID
From: https://www.cnblogs.com/huchao12/p/17554898.html

相关文章

  • linux samba docker
    dockerpulldperson/samba#bestpractice,orderisimportant!dockerrun-it--namesamba-p139:139-p445:445\-v/path/to/local/directory:/mount\-v/etc/localtime:/etc/localtime:ro\dperson/samba-p\......
  • 在centos 7.9 上构建docker
    1. 查看系统当前的内核信息[root@localhost~]#uname-r2.查看版本信息[root@localhost~]#cat/etc/os-release 3. 关闭防火墙[root@localhost~]##暂时关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]##永久关闭防火墙[roo......
  • Docker学习路线5:在 Docker 中实现数据持久化
    Docker可以运行隔离的容器,包括应用程序和其依赖项,与主机操作系统分离。默认情况下,容器是临时的,这意味着容器中存储的任何数据在终止后都将丢失。为了解决这个问题并在容器生命周期内保留数据,Docker提供了各种数据持久化方法。Docker卷绑定挂载Dockertmpfs挂载Docker卷......
  • cpuset.cpus.effective: no such file or directory (修改 docker cgroup 版本的方法)
    要切换使用v1版cgroup,需要做如下配置: vim/etc/default/grub   GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0" update-grubreboot  完美解决 ......
  • docker 镜像中的文件不是最新的
    Docker镜像中的文件不是最新的在使用Docker构建和管理容器时,我们经常会遇到镜像中的文件不是最新的问题。这可能是因为我们在构建镜像时没有更新文件,或者在拉取镜像时使用的是旧版本。本文将介绍为什么会出现这种情况,并提供相应的解决方案。1.Docker镜像是什么?在深入讨论问题之......
  • docker 检查SQL Server实例的TCP/IP协议是否已启用
    检查SQLServer实例的TCP/IP协议是否已启用作为一名经验丰富的开发者,我将帮助你学习如何检查SQLServer实例的TCP/IP协议是否已启用。以下是整个流程以及每一步需要做的事情。流程步骤描述1连接到SQLServer实例2查询是否已启用TCP/IP协议3根据查询结果判断TC......
  • 容器签名验证
    如果容器构建过程受到破坏,它会使用户很容易意外使用恶意镜像而不是实际的容器镜像。对容器进行签名和验证始终确保我们运行的是实际的容器镜像。https://github.com/sigstore/cosign安装二进制命令gitclonehttps://github.com/sigstore/cosigngomodtidygobuildcmd/co......
  • 容器镜像学习笔记
    目录docker在本地从DockerHub下载镜像的方法在OpenEuler系统上安装Docker的方法docker镜像的命名规则dockerdangling虚悬镜像dockermanifestmultiarchdockerdesktop配置使用curl访问registry的命令使用postman访问registry的urlsdocker重启命令docker的常见命令......
  • Docker部署Jmeter+Grafana+InfluxDB
      一:服务器配置Hosthssh505HostName180.184.138.70Port22Userroot前置条件:windows需通过softether客户端连接VPN本机ip:192.168.1.44二:安装docker安装命令:aptinstalldocker.io验证版本:2种方式docker--versiondocker-v出现版本信息则意味着安装成功:Docker......
  • docker命令
    查看启动中的容器:dockersps 查看所有容器:dockersps -a查看镜像:dockersearchgrafana根据镜像名称拉取镜像:dockerpullgrafana/grafana生成grafana容器:dockerrun-d--namesunlin-grafana-p3000:3000grafana/grafana进入grafana容器:dockerexec-it  sunlin-gr......