docker基础学习一

  docker 介绍

  

  1、docker 是什么 ?

  docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中。

  然后发布到任何一个 linux 系统上面。

  特点:

  docker 容器启动和停止都很快,直接在宿主中可以完成。

  docker 容器占用的系统资源少,一台宿主可以运行很多容器

  docker 操纵方便,简单易学习

  docker 可以通过 dockerfile 配置文件自动创建和部署。

  docker 容器也是沙箱机制的,相互完全隔离

  三大核心概念 : 镜像,容器,仓库

  镜像

  docker 镜像类似于虚拟机镜像,也可以理解为一个面向 docker 引擎的只读模版。

  镜像是创建 docker 容器的基础,镜像可以是一个系统( ubuntu镜像 ),也可以是一个应用程序( mysql 镜像 )。

  获取镜像

docker pull  name[:tag]

  开发者可以通过 docker pull 来获取对应的镜像。

  查看镜像信息

docker images

  列出所有的镜像列表。

  展示镜像的概要信息,了解当前所有的镜像。

  查看具体镜像信息

docker inspect imageID

  获取某一个镜像的详细信息。

  搜索镜像

docker search  name

  在仓库中查询某一个镜像。

  删除镜像

docker rmi name

  删除某一个镜像。

  创建镜像

  创建镜像有三种方法:基于已有镜像的容器创建、基于本地模版导入、基于 dockerfile 创建

  

  基础已有镜像容器创建

docker commit [options]  containerId [imageName[:tag]]

  创建一个容器:

  options :a ( 作者名称 )、m( 提交信息 )、p( 创建时候暂停 )

  containerId :容器的id

  imageName[:tag] : 名称和标签

  直接导入模版文件创建镜像

docker import  tpl

  

  存出和载入镜像

  存储可以将镜像保存为本地文件

  载入将本地文件导入为一个本地镜像

  上传镜像

docker push name[:tag]

  创建本地镜像到仓库中。

  容器

  docker 容器类似一个轻量级的沙箱,docker 利用容器来隔离和运行应用。

  容器是通过镜像创建实例来的,在宿主中可以实现启动、停止、删除等操作,且容器相互隔离不受影响。

  创建容器

docker create name[:tag]

  创建了容器但是没有启动它。

  可以通过 docker start name 来启动容器

  新建并启动容器

docker run  name

  相当于:docker create  -->   docker start

  过程:

  1、检查是否存在本地镜像,不存在到仓库中获取

  2、利用容器创建并启动容器

  3、分配一个文件系统,并在只读的镜像层外面挂在一层可读写层

  4、从宿主的网桥中桥接一个虚拟接口到容器中

  5、从地址池配置一个 IP 地址给容器

  6、执行指定到应用程序

  7、执行完毕

  参数:

  t :分配一个伪终端

  i :标准的输入

  d : 后台运行

  

  进入容器

docker exec -it  containerID /bin/bash

  nesnter 工具

  需要下载工具,并且链接 docker

  

  删除容器

docker rm containerID

  

  docker 仓库

  docker 仓库类似于代码仓库,是 docker 集中存放镜像文件的位置。

  数据卷

  

  创建数据卷

docker run -d -p --name  -v /container/dir:/local/dir  imageName

  

  -v : 创建一个数据卷。

  一个宿主目录和容器目录的映射。

  创建数据卷容器

docker run-it -v /local/dbdata  --name con1  ubuntu

  共享数据卷容器

docker run -it --volumes-from con1 --name con2 ubuntu

  

  con1 和 con2  同时共享 /dbdata 目录。

  利用数据卷容器迁移数据

  1、备份数据

docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu

  创建一个容器且挂在到 dbdata 上面,-v 创建数据卷

tar cvf  /backup/backup.tar  /dbdata

  打包数据tar

  2、恢复数据

tar xvf /backup/backup.tar

  解压数据

  端口映射

docker run  -p 5000:30000  name  image

  p : 将本地端口映射到容器端口上

Dockerfile 创建镜像 

  dockerfile 是一个文本格式的配置文件,可以快速的创建自定义镜像。

  基本结构

  dockerfile 是一行行命令语句组成。

  一般分为四个部分:

  基本镜像信息、维护者信息、镜像操作者、容器启动指令

   配置

  1、FROM  <image[:tag]>

  指定配置的镜像

  2、MAINTAINER  <name>

  作者名称

  3、RUN  <command>

  在 shell 运行命令,即 /bin/bash  -c

  4、CMD  [] <command>

  执行命令,只会执行最后一条

  5、EXPOSE  ports

  暴漏执行端口,可外部访问或者 -p 映射

  

  6、ENV  <key>  <value>

  指定环境变量,在配置全局可以使用

  7、ADD/COPY  <src> <dest>

  指定本地的链接到容器目录

  8、ENTRYTRYOINT  <command>

  容器启动后,执行到命令

  9、VOLUME ["data"]

  创建一个主机或者其他数据卷挂载点

  10、USER daemon

  指定用户名称

  创建镜像

  编写完成 dockerfile 文件之后,可以用 docker build 创建镜像。

原文地址:https://www.cnblogs.com/jiebba/p/10101799.html

时间: 2024-07-31 23:39:57

docker基础学习一的相关文章

【补充】docker基础学习

docker 基础知识 之前写了一篇docker未授权访问的文章,现在来补充一下docker基础知识,以便更好的学习docker上的漏洞. docker是一款轻量级的虚拟化的产品,它属于层级化的架构.最底层是LXC和文件系统AUFS,上面是各种镜像,docker实际上是具有依赖关系的多个层组成的,不同的container可能共享底层的资源.docker的核心是基于cgroup和namespace隔离和限制资源. Cgroups是control groups的缩写,是Linux内核提供的一种可以限

Docker 基础学习(一)

Docker官网:https://docker.com/ 中文翻译非常好的学习地址:http://dockerpool.com/static/books/docker_practice/index.html 学习一项新技术之前,我们应该只要是什么?为什么使用?怎么使用? 对于Docker,我们依然按此步骤来学习: 1.什么是Docker? 2.为什么使用Docker? 3.怎么使用Docker? 什么是Docker?(引自:http://dockerpool.com/static/books/d

docker基础学习三

一.Dockerfile学习 由一系列的参数和命令构成的脚本.这些命令应用于基础镜像并最终创建一个新的镜像.基础镜像就是操作系统级别的镜像. 常用命令 FROM image_name:tag 定义了使用哪个基础镜像启动构建流程 MAINTAINER user_name 声明镜像的创建者 ENV key value 设置环境变量 (可以写多条) RUN command 是Dockerfile的核心部分(可以写多条) ADD source_dir/file dest_dir/file 将宿主机的文件

docker基础学习笔记

容器这四点一定要懂:注册服务器.仓库.镜像.容器 他们的范围依次缩小 注册服务器可以有多个仓库,仓库里面可以有多个镜像,每个镜像可以生成多个容器. docker属于C/S结构 支持三种连接方式: unix:///var/run/docker.sock tcp://host:port fd://socketfd docker在Centos7安装 1.yum安装docker yum -y install docker 2.安装结束后,启动docker systemctl start docker #

docker基础学习

一.什么是Docker 1.什么是Docker Docker是一个由GO语言写的程序运行的"容器"(Linux containers, LXCs):  目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机. Docker则实现了一种应用程序级别的隔离:  它改变我们基本的开发.操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的"容器"上来. Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台. Dock

docker基础学习二

一 部署Mysql 搜索镜像 docker search mysql 拉取镜像 docker pull centos/mysql-57-centos7 创建Mysql 容器 docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7 33306是宿主机的端口,3306是docker的端口,MMYSQL_ROOT_PASSWORD指定Mysql ,root的

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

docker基础教程

body{ font-family: 微软雅黑; font-size: 11pt; line-height: 1;}html, body{ color: ; background-color: ;}h1 { font-size:1.5em; font-weight:bold;}h2 { font-size:1.4em; font-weight:bold;}h3 { font-size:1.3em; font-weight:bold;}h4 { font-size:1.2em; font-weig

零基础学习openstack【完整中级篇】及openstack资源汇总

1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事,内容整合来自: 零基础学习openstack(上)[中级篇] 零基础学习openstack(下)[中级篇] 是在 零基础学习openstack[初级篇]基础上的一个继续: 初级篇,我们主要是有这么一个概念,openstack的组成openstack由哪些部分来组成: Identity(代号为“Ke