首页 > 其他分享 >1、docker基础及安装,镜像操作

1、docker基础及安装,镜像操作

时间:2024-04-09 22:45:44浏览次数:25  
标签:容器 -- image registry 镜像 docker 安装

docker基础
docker architecture:
docker  client:docker build、docker pull、docker run
docker_host:docker deamon:containers+images
docker registry:

docker objects:
images、containers、networks、volumes、plugins

镜像:静态的
容器:动态,生命周期


1、docker安装和使用

1、Centos Extras Repo
2、Docker-CE
下载:https://download.docker.com
    仓库配置文件:https://download.docker.com/linux/centos/docker-ce.repo

使用docker-ce版本:repo安装
wget  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg


将文件docker-ce.repo中"https://download.docker.com"的修改为https://mirrors.tuna. .edu.cn/docker-ce
# yun install docker-ce
# vi  /etc/docker/deamon.json  
        {
            "registry-mirrors": ["https://registry.docker-cn.com"]
        }
# systemctl start docker.service

Dcoker组件:
docker程序环境:
    环境配置文件:
        /etc/sysconfig/docker-network
        /etc/sysconfig/docker-storage
        /etc/sysconfig/docker
    Unit File:
        /usr/lib/systemd/system/docker.service
    Docker Registry配置文件:
        /etc/containers/registries.conf
    Docker-ce:
        配置文件:/etc/docker/deamon.json
    vi  /etc/docker/deamon.json  
        {
            "registry-mirrors": ["https://registry.docker-cn.com"]
        }

注册阿里云账号,专用加速器获取地址:
    https://cr.console.aliyun.com/#/accelerator    
Docker镜像加速:
    docker cn
    阿里云加速器
    中国科技大学
    {
        "registry-mirrors": ["https://registry.docker-cn.com"]
    }

docker常用命令:
docker version:查看docker版本
docker info:查看docker详细信息
docker search:搜索镜像
docker pull 镜像名:拉取镜像到本地
docker images:列出镜像
docker image ls/docker image ls --no-trunc [镜像名]:查看镜像详细信息
docker create: create a new container
docker start 容器名:启动容器
docker run 容器名:直接创建容器并运行
docker attach:attach to a running container
docker ps:docker container ls:列出所有已经运行的容器
docker ps -a:列出所有的容器
docker logs 容器名:在外部查看容器的日志
docker restart:
docker stop:
docker kill 容器名:强制停止
docker rm:删除(已经停止的)容器
docker rmi [镜像名]/docker image rm [镜像名]:删除镜像
docker pause 容器名:暂停容器
docker unpause 容器名:

# docker run --name 容器名 -it busybox:latest    ---创建运行并进入容器
# docker inspect 容器名    ---查看该容器的详细信息
# docker start -i -a 容器名    ---启动并进入容器
# docker run --name nginx1  -d nginx:1.14-alpine    ---若镜像nginx:1.14-alpine不存在,会自动拉取到本地;-d表示在后台运行
# docker run --name rediskvstor -d redis:4-alpine
# docker exec -it 容器名 /bin/sh


2、docker images镜像
2.1 docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器。
采用分层构建机制,最底层为bootfs,其次为rootfs:
bootfs:用于系统引导的文件系统,包括bootloader和kernerl,容器启动完成后会被卸载以节约内存资源;
rootfs:位于bootfs之上,表现为docker容器的根文件系统;
    传统模式中,系统启动时,内核挂在rootfs时首先会将其挂载为“只读”模式,完整性自检完成后将其重新挂在为读写模式;
    docker中,rootfs由内核挂载为“只读”模式,而后通过“联合挂载”技术额外挂载一个“可写”层。

2.2 docker image layer
位于下层的镜像称为父镜像(partent image),最底层的称为基础镜像;
最上层为“可读写”层,其下的均为“只读”层;

2.3 aufs
advanced mult-layered unification filesystem:高级多层统一文件系统;
用于linux文件系统实现联合挂载;
docker最初是由aufs作为容器文件系统层;另还有overlayfs,从3.18版本开始合并到Linux内核;
docker的分层镜像除了aufs,还支持btrfs、devicemapper和vfs等;
在Ubuntu系统,docker默认为aufs;在centos上,用的是devicemapper;

devicemapper:
是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构
overlayfs:(overlay2)

docker image layer:
位于下层的镜像成为父镜像(parent image),最底层的成为基础镜像(base image),
最上层为“可读写”层,其下均为“只读”层
(kernel)bootfs -->base image(centos) -->image1(nginx1)--> image2(redis)--> container(writable)


2.4 docker registry
启动容器时,docker deamon 会试图从本地获取相关镜像;本地镜像不存在时,将从registry中下载该镜像并保存到本地;
docker registry分类:
registry用于保存docker镜像,包括镜像的层次结构和原数据;
可自建registry,或使用官方的docker hub;
分类:
    sponsor registry :第三方的registry,供客户和docker社区使用;
    mirror registry:第三方的registry,只让客户使用;
    vendor registry:由发布docker镜像的供应商提供的registry;
    private registry:通过设有防火墙和额外的安全层的私有实体提供的registry;

repository:
    由某特定的docker镜像的所有的迭代版本组成的镜像仓库;
    一个registry中可以存在多个repository:repository可分为“顶级仓库”和”用户仓库“;用户仓库命名格式为“用户名/仓库名”;每个仓库可以包含多个tag(标签),每个标签对应一个镜像;
index:
    维护用户账号、镜像的校验以及公共命名空间信息;相当于为registry提供了一个完成用户认证等功能的检索接口;

# docker pull <registry>[<:port>/[<namespace>/]<name>:<tag>
# docker pull quay.io/coreos/flannel:v0.10.0-amb64

3、镜像的相关操作
3.1 镜像的生成途径:
    dockerfile;基于容器制作;docker hub automated builds
基于容器制作镜像:
# docker commit --help
options: -p:制作镜像时暂停容器
         -a: --author string eg:-a "mageedu <mageeud.com>"
         -c: --change list :apply dockerfile instruction to the created image

# docker commit [options] container [repository[:tag]]
# docker commit -p web1

3.2 为镜像设置标签:
# docker image ls    ---查看刚制作的镜像,没打标签
# docker tag source_image[:tag]    target_image[:tag]    ---打标签
# docker tag 38baa835d452 mageedu/httpd:v0.1
# docker tag  mageedu/httpd:v0.1 mageedu/httpd:latest    ---重新打标签

3.3 推送镜像到docker hub:
将镜像推送到docker hub的前提是要有docker hub账号,且镜像的标签格式为:“$docker_user_id/image_name"
若要先登录:
# docker log -u username -p passwd
# docker push image_name[:tag]

3.4 镜像导入导出:
docker save:镜像导出
docker save [options] image_name1 image_name2 ...
    options: -o --output string
# docker save -o myimage.gz image1 image2

docker load:
# docker load [options] 
options: -i --input string 
         -q --quiet 
# docker load -i  myimage.gz 

 

标签:容器,--,image,registry,镜像,docker,安装
From: https://www.cnblogs.com/skyzy/p/18125047

相关文章

  • 0-1、docker
    Docker命令详解#docker--helpUsage:docker[OPTIONS]COMMAND[arg...]dockerdaemon[--help|...]docker[-h|--help|-v|--version]Aself-sufficientruntimeforcontainers.主要选项:-d:以后台进行方式运行容器-t:提供一个伪终端-......
  • docker踩坑之 device or resource busy
    问题描述linux服务器上运行了一个docker容器,在运行cp命令时报错dockercpredis.confmyadmin_redis:/data/redis.conf将服务器上的文件拷贝到docker容器内部时,报以下错误Errorresponsefromdaemon:Errorprocessingtarfile(exitstatus1):unlinkat/data/redi......
  • 4-3 docker隔离机制-cgroups
    ControlGroup控制组群使用CGroups限制这个环境的资源使用情况cgroup:比如一台16核32GB的机器上只让容器使用2核4GB。使用CGroups还可以为资源设置权重,计算使用量,操控任务(进程或线程)启停等;在/sys/fs/cgroup下面有很多如cpu、memory这样的子目录,也叫子系统,这些都是这台机器......
  • 4-2 docker隔离机制-namespace
    1、使用Namespaces实现了系统环境的隔离Docker实际上是在创建容器进程时,指定了这个进程所需要启用的一组Namespace参数,这样容器就只能看到当前Namespace所限定的资源、文件、设备、状态。而对于宿主机以及其他不相干的程序,就完全看不见了http://www.dockone.io/article/8148常......
  • 4-1 Docker容器实现原理
    Docker容器实现原理主要是namespace和cgroup控制资源的隔离。虽然Docker可透过Namespace的方式分隔出看似是独立的空间,然而Linux内核(Kernel)却不能Namespace,所以即使有多个Container,所有的systemcall其实都是通过主机的内核处理,这便为Docker留下了不可否认的安全问题。虚拟机......
  • 2-3、dockerfile之wordpress
    wordpress:4.2#cddocker-training/wordpress/#ls-a.license.txtwp-config-sample.phpwp-login.php..readme.htmlwp-contentwp-mail.phpDockerfilewp-activate.phpwp-cron.php......
  • 2-2、dockerfile之php-fpm,mysql
    dockerfile之php-fpm#cddocker-training/php-fpm/#lsDockerfilenginx_nginx.confsupervisor_nginx.confnginx_default.confphp_www.confsupervisor_php-fpm.conf各文件解释:nginx_nginx.conf替换默认的nginx.conf文件nginx_default.conf替换默......
  • 1-1、Docker命令详解
    Docker命令详解#docker--helpUsage:docker[OPTIONS]COMMAND[arg...]dockerdaemon[--help|...]docker[-h|--help|-v|--version]Aself-sufficientruntimeforcontainers.主要选项:-d:以后台进行方式运行容器-t:提供一个伪终端-......
  • UEFI模式下安装Windows系统,您可以使用 Microsoft 提供的 Windows 安装媒体(如 USB 安装
    UEFI模式下安装Windows系统,您可以使用Microsoft提供的Windows安装媒体(如USB安装盘或光盘)。下面是一个简单的批处理脚本示例,用于在UEFI模式下安装Windows系统:CopyCode@echooffclsechoStartingWindowsinstallationinUEFImode...::设置安装媒体的路径,假设为D:......
  • 1-2、docker命令
    docker命令1run主要选项:-d:以后台进行方式运行容器-t:提供一个伪终端-i:提供交互输入,一般与“-t”一起使用,如果只提供“-i”选项,则容器启动后是无法退出的-v:映射一个volume给容器,如:-p/data/www:/var/www/html-p:将容器的端口映射给宿主机(指定映射出的端口),......