博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker入门(二)
阅读量:5880 次
发布时间:2019-06-19

本文共 3443 字,大约阅读时间需要 11 分钟。

一、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,如需转载请自行联系原作者

你可能感兴趣的文章
享元模式
查看>>
如何为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址(NAT方式)
查看>>
subprocess
查看>>
MPLS L3×××技术介绍
查看>>
苹果开发者申请DUNS-number邓白氏编码步骤
查看>>
MySql5.6停电后无法启动的问题
查看>>
cannot send list of active checks to [127.0.0.1]: host [Zabbix server] not found
查看>>
阿里核心系统图
查看>>
Dockerfile 构建镜像 - 每天5分钟玩转容器技术(13)
查看>>
[linux/unix]getservbyport|getservbyname
查看>>
python监控远程tcp服务
查看>>
SCCM 2016 配置管理系列(Part 14 )
查看>>
如何优雅地比较版本
查看>>
CISCO设备rommon模式刷新IOS步骤!
查看>>
处理QQ聊天群记录的算法
查看>>
程序员人生之路
查看>>
IDC评述网:1月下旬国内域名解析服务商Top10
查看>>
sphinx
查看>>
CentOS7安装iptables防火墙
查看>>
python小程序4
查看>>