1.docker学习笔记:docker的安装和基本使用

docker的安装和基本使用


docker简介和虚拟化

docker是一种可以把应用程序自动部署到容器的开源引擎,他和虚拟化相比具有轻量和快速部署删除的特点,可以使软件开发偏向于微服务架构方向。从资源成本和管理方式上都比传统的虚拟化有着太多的优势,但是对运行环境的要求较高。

docker的组件包含以下四个:

(1)docker的客户端和服务端;
(2)docker镜像(images);
(3)registry(仓库,比如官方的docker hub)
(4)docker容器(container,算是images实例化的一个“系统”)

docker的技术包括:
(1)一个原生的linux容器;
(2)linux内核命名空间,用于隔离文件系统、进程和网络;
(3)文件系统隔离;
(4)进程隔离:每个容器都运行在自己的root文件系统中;
(5)网络隔离:容器间的虚拟网络接口和ip地址都是分开的;
(6)资源隔离分组:使用cgroups,将cpu和内存之类的资源独立分配给每个docker容器;
(7)写实复制:文件系统都是通过写时复制创建的,意味着文件系统是分层的、快速的,而且占用的磁盘空间小;
(8)日志:可以使用docker log进行查看;

docker与虚拟机之间的架构比较:
这里写图片描述
比较两图的差异,左图虚拟机的Guest OS层和Hypervisor层在Docker中被Docker Engine层所替代。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整操作系统内核;虚拟机的Hypervisor层可以简单理解为一个硬件虚拟化平台,它在Host OS是以内核态的驱动存在的。

总结一句话:docker速度快、好移植,但是安全性低;虚拟机速度慢、不好移植、但是安全性高

但是随着以后的发展,docker应该可以克服这些问题。


docker安装

docker的安装环境是在3.1内核以上,而且必须是64位(目前)的操作系统,内核必须支持并开启cgroup和命名空间功能。内核必须支持合适的存储驱动:(Device Mapper、AUFS、vfs、btrfs、ZFS)

redhat/centos下安装

1.查看内核版本信息:

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

2.查看是否支持device mapper:

[root@localhost ~]# ls -l /sys/class/misc/device-mapper/
总用量 0
-r--r--r--. 1 root root 4096 1110 14:02 dev
drwxr-xr-x. 2 root root    0 1110 14:02 power
lrwxrwxrwx. 1 root root    0 1110 14:02 subsystem -> ../../../../class/misc
-rw-r--r--. 1 root root 4096 112 14:00 uevent
[root@localhost ~]# grep device-mapper /proc/devices 
253 device-mapper

如果没有的话,安装device-mapper,并且加载device-mapper模块:

[root@localhost ~]# yum install device-mapper -y
[root@localhost ~]# modprobe dm_mod

3.centos7的镜像中支持docker的安装,可以直接使用yum命令:

[root@localhost ~]# yum install docker -y

4.启动并且查看docker服务:

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2016-11-02 19:25:33 CST; 1 weeks 0 days ago
     Docs: http://docs.docker.com
 Main PID: 9354 (docker-current)
   Memory: 2.8M
   CGroup: /system.slice/docker.service
           └─9354 /usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald

1109 16:41:05 localhost.localdomain docker-current[9354]: [35B blob data]
1109 16:41:05 localhost.localdomain docker-current[9354]: [63B blob data]
1109 16:41:05 localhost.localdomain docker-current[9354]: [50B blob data]
1109 16:41:05 localhost.localdomain docker-current[9354]: [44B blob data]
1109 16:41:05 localhost.localdomain docker-current[9354]: [46B blob data]
1109 16:41:05 localhost.localdomain docker-current[9354]: [112B blob data]
1109 16:41:06 localhost.localdomain docker-current[9354]: [44B blob data]
1109 16:41:06 localhost.localdomain docker-current[9354]: [44B blob data]
1109 17:21:46 localhost.localdomain docker-current[9354]: time="2016-11-09T17:21:46.678318978+08:00" level=info msg="{Action=networks, Username=root, LoginU...=19209}"
1110 14:11:24 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

ubuntu下安装

1.查看内核版本信息:

root@vs026:~# uname -a
Linux vs026 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2.查看是否支持device mapper:

root@vs026:~# ls -l /sys/class/misc/device-mapper/
total 0
-r--r--r-- 1 root root 4096 Nov 10 16:18 dev
drwxr-xr-x 2 root root    0 Nov  4 14:20 power
lrwxrwxrwx 1 root root    0 Nov 10 16:18 subsystem -> ../../../../class/misc
-rw-r--r-- 1 root root 4096 Nov 10 16:18 uevent

3.使用apt-get安装docker:

apt-get install docker-engine -y

4.启动和查看docker服务:

root@vs026:~# /etc/init.d/docker start
root@vs026:~# /etc/init.d/docker status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service docker status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status docker
docker start/running, process 24474

docker的常见操作

1.查看docker的整体信息:
主要列举了如下内容:
(1)容器的个数:整体的、运行中的、关闭着的;
(2)镜像的数量;
(3)docker的版本;
(4)文件驱动方式&#

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到Docker学习笔记时,我可以为你提供一些基本的指导和主题,以帮助你开始学习Docker。以下是一些可能涵盖的主题: 1. Docker简介:了解Docker基本概念、优势以及它如何与虚拟化技术不同。 2. Docker安装学习如何在不同的操作系统上安装Docker,并熟悉Docker引擎的组成部分。 3. Docker镜像:了解Docker镜像的概念,以及如何通过构建、拉取和推送镜像来管理和共享容器环境。 4. Docker容器:学习如何创建、启动、停止和删除容器,并了解容器和主机之间的交互方式。 5. Docker网络:探索Docker网络模式,包括桥接网络、主机网络和覆盖网络,并理解容器之间以及容器与主机之间的通信方式。 6. Docker存储:了解Docker存储技术,包括数据卷和绑定挂载,并学习如何在容器中持久化数据。 7. Docker Compose:介绍Docker Compose工具,它可以用于定义和运行多个容器的应用程序。 8. Docker Swarm:探索Docker Swarm,它是Docker官方的容器编排和集群管理工具,于在多个主机上部署和管理容器应用。 9. Docker和持续集成/持续部署(CI/CD):了解如何将Docker与CI/CD工具(如Jenkins、GitLab CI等)集成,以简化应用程序的构建和部署过程。 这只是一些可能的主题,你可以根据自己的需求和兴趣来选择学习内容。希望这些指导可以帮助你开始学习Docker!如果你有任何特定的问题,我很乐意回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值