Docker入门(二)

简介:

一、Docker相关概念

1.Docker:

namespace,cgroup:

解决方案:

lxc,openvz

lxc:linux containers

docker最初就是lxc的封装版本。

docker engine/docker server:输出一个api,用于接受外部请求

接受到client请求,借助于lxc虚拟化技术,在lxc上创建一个虚拟机实例。

docker借助于外部的dockerhub,实现image

后台docker不再使用lxc,使用libcontainer[centos 7],隔离用户空间的引擎

在前端使用没有区别

2.容器虚拟化

例如kvm也需要images,有一个完整的OS

而容器所需的images,并非完整的OS,只拥有FS,没有内核

借助于AUFS技术对映像文件进行分层,容器运行一个独立的FS上

运行nginx需要nginx依赖的库,运行mysql需要依赖mysql的库

把FS做成一个base image,再做几个专用的image,例如nginx专用的,MySQl专用的

  [docker hub]

 /

/

  [cn1][cn2]...

[API] [docker  engine   ]

=======================

Hypervisor

=============

Host OS

==============

【硬件】

3.核心组件;

docker client:docker的client工具,用户使用docker的接口,docker client与docker daemon通信。并将结果返回给client

docker daemon:运行在宿主机,Docker的守护进程,用户可通过docker client与其交互;

image :只读的,基于aufs或者UnionFS叠加在一起,用来创建container

一个镜像可以运行多个container;镜像文件可以通过Dockerfile创建,也可以从docker hub/registry 下载

repository

公共仓库 //提供有base image Docuer hub/registry

私有仓库 //docker repository 

docker container:docker的运行实例,容器是一个隔离环境

另外两个重要组件:

docker link:各docker之间的通信,openvswtich,netns构建,

docker volume:容器中的数据的持久化


二、安装Docker:

centos6 ;epel

centos7: extra

docker-engine

安装Docker:

https://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7/

yum install docker-engine

[root@node1 ~]# rpm -ql docker-engine |egrep -v "share"

/etc/udev/rules.d/80-docker.rules

/usr/bin/docker

/usr/bin/docker-containerd

/usr/bin/docker-containerd-ctr

/usr/bin/docker-containerd-shim

/usr/bin/docker-init

/usr/bin/docker-proxy

/usr/bin/docker-run

/usr/bin/dockerd

/usr/lib/systemd/system/docker.service

docker子命令有很多

systemctl start docker.service

docker images //查看镜像

docker search centos 

Name DESCRIPTION STARS STARS OFFICAL AUTOMATED

自动生成

darksheer/centos //用户名:镜像名

docker search busybox 

docker pull busybox //拉取官方镜像 base iamge

tag : lastest //最新版本,默认最新版本

docker pull hub.mt.com:5000/busybox //执行私有仓库获取image,必须支持ssl。或者禁止使用tls

docker help run //运行

docker run [OPTIONS] IMAGS [COMMAND] [AEG,...]

//image应该有一个运行起来后,默认运行的命令。

-t --tty=false 分配一个默认的伪终端

-i --interactive=false 打开之后运行在交互式

[root@node1 ~]# docker run -it busybox:latest /bin/sh 

docker ps //查看正在运行的 docker

需要借助于外 volume 保存创建的数据。

docker help commit //基于当前容器的所有修改,创建一个新的images

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

三、docker常用命令:

1.环境信息相关

info 

version

2.系统维护相关

images 

inspect :容器的详细信息

build:基于dockerfile创建image文件

commit:基于运行中的容器创建映像文件

pause:暂停

unpause

rm

rmi //删除映像文件

run //基于image运行一个容器

start/stop/restart 

top //资源占用情况

ps 

kill

...

3.日志相关

events;

hisgory;

logs;

        4.Docker hub 相关

login

logout

pull

push 

search 

基本操作:

获取映像:pull

启动容器:run

-i,-t 

docker run -it centos:latest /bin/bash 

ifconfig //docker0 一个虚拟接口

一半在虚拟机, 一半在宿主机

docker kill c98dac012556 //kill 掉容器,容器ID

docker ps -a //可以查看所有的

关闭后,默认还是会占用内存,可以在启动的时候

docker run --rm //退出则,rm自动移除容器

docker rm  c98dac012556 //删除该容器

docker image的创建:

1.基于dockerfile

2.基于运行中的容器修改

//仅仅是打包最上面一层,只有最上面一层是可写的。

实验:commit,保存文件

[root@node1 ~]# docker run -it centos:latest /bin/bash

在home中 useradd centos 

[root@node1 ~]# docker commit faecb4def9d5 centos:newuser

[root@node1 ~]# docker images

有 newuser

[root@node1 ~]# docker kill faecb4def9d5

[root@node1 ~]# docker rm faecb4def9d5

[root@node1 ~]# docker ps -a

没有之前的容器了

[root@node1 ~]# docker run -it --rm centos:newuser /bin/bash

rm用于关闭后,就删除容器

[root@3f20a3c7f5df /]# id centos

uid=1000(centos) gid=1000(centos) groups=1000(centos)

[root@3f20a3c7f5df /]# exit

[root@node1 ~]# docker ps -a //将没有容器运行










本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/1946362,如需转载请自行联系原作者

相关文章
|
1月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
186 0
|
2月前
|
运维 虚拟化 开发者
Docker-全面详解(学习总结---从入门到深化)
Docker-全面详解(学习总结---从入门到深化)
48 1
|
3月前
|
大数据 数据管理 Docker
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
246 0
|
2天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
5 0
|
6天前
|
机器学习/深度学习 数据挖掘 Docker
《Docker 简易速速上手小册》第1章 Docker 基础入门(2024 最新版)
《Docker 简易速速上手小册》第1章 Docker 基础入门(2024 最新版)
20 1
|
14天前
|
存储 Ubuntu 关系型数据库
Docker从入门到精通:ubuntu系统安装docker
本文介绍了Docker的安装过程。首先,文章简述了Docker的组成部分:镜像(如模板用于创建容器服务)、容器(运行应用的独立实体)和仓库(存储镜像的库)。接着,针对Ubuntu系统,详细阐述了卸载旧版本Docker、更新软件包、安装依赖、添加Docker官方GPG密钥和软件源、安装Docker以及配置用户组的步骤。最后,通过启动Docker、验证安装是否成功(运行`hello-world`镜像)和查看Docker版本来确认安装完成。
53 12
|
22天前
|
Ubuntu Linux Shell
docker学习笔记3,从入门到精通
docker学习笔记3,从入门到精通
|
22天前
|
应用服务中间件 Shell nginx
docker学习笔记2,入门到精通
docker学习笔记2,入门到精通
|
22天前
|
Ubuntu 网络协议 Docker
docker学习笔记1,入门到精通
docker学习笔记1,入门到精通
|
2月前
|
Java Linux Docker
Docker入门到实战
Docker入门到实战、Centos7安装Docker