Docker 是一个开源项目,为开发者和系统管理员提供了一个开放的平台,在任何地方通过打包和运行应用程序作为一个轻量级的容器。Docker 在软件容器内自动部署应用程序。Docker 最开始由 Solomon Hykes 作为 dotCloud 一个内部开发项目,一个企业级的 PaaS (platform as a service 服务平台),该软件现在由 Docker 社区和 Docker 公司维护,更多 Docker 信息你可以访问:https://docs.docker.com/

我们可以通过 Docker 官方提供的 KVM 与 Docker 的图片更加形象的知道什么是 Dock:

安装 Docker 所需条件:需要 64 位架构的系统和Linux 3.10 内核或更高版本。这里作者使用了 Ubuntu15.04 系统的 3.19 内核版本。

关于 Docker 再多了解一些

在这里你可以了解到 docker 世界最基本的条件。

Docker Images

Docker image 是 Docker container 最基本的模板。image 通用容器使系统和应用易于安装,Docker image 是用来运行的容器,你可以找到许多 images (多种操作系统和软件已经被安装好了的 Docker)在这里 https://hub.docker.com/.

Docker Container

Docker 容器(Docker Container)是一个 Image,在运行的 Docker image 上读取和写入。Docker 是一个联合的文件系统作为容器后台,容器的任何变化,都将被保存在一个基本 image 新的层上。我们安装应用程序的层就是容器。每个在主机机上运行的容器都是独立的,因此,提供了一个安全的应用平台。

Docker Registry

Docker registry 是为 Docker images 提供的库。它提供了公共和私有库。公共 Docker 库被叫做 Docker Hub。这里我们能够上传 push 和 pull 我们自己的 images.

在 Ubuntu 15.04 上安装 Docker

以下我们将指导你如何安装 docker。在安装之前我们需要检查 kernel 版本和操作系统架构。

运行命令:

uname -a

你可以看到我们使用的是 ubuntu 15.04 64位版本和 kernel  3.19 内核。

现在运行安装 Docker 的命令:

sudo apt-get install -y docker.io

等待安装完毕,现在我们使用下面的命令启动 Docker:

systemctl start docker

报错:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/search?limit=25&term=ubuntu: dial unix /var/run/docker.sock: connect: permission denied

解决:

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
if:
The docker-compose version is too low. current version: 1.8., mininum version:1.10. solution:
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

运行系统引导时启用 docker,命令:

systemctl enable docker

你可能想核对一下 docker 版本:

docker version

现在,docker 已经安装在您的系统上。您可以从 Docker 库先下载 Docker Image 制作的容器。

Docker 的基本用法

在本节中,我将向您介绍 Docker 命令的常用选项。例如如何下载一个 docker image,打造一个容器,以及如何访问容器。

要创建一个新的容器,你应该选择一个基本 image 的操作系统,例如启动 Ubuntu 或者 CentOS 或其他系统。您可以搜索一个基本 image 使用 Docker 搜索命令:

docker search ubuntu

该命令将显示所有 ubuntu images,你可以自己尝试一下搜索 centos Images。

现在我们现在 base image到我们的服务中,使用命令:

docker pull ubuntu

现在,您可以通过使用命令来查看所有已下载的images:

docker images

Ubuntu 镜像从DockerHub/Docker Registry下载。下一步骤是创建从该镜像的容器。

要创建容器,可以使用docker create 或 docker run

docker create ubuntu:14.04

docker create 命令会创建一个新的容器,但不会启动它。所以现在你需要使用运行命令:

docker run -i -t ubuntu:14.04 /bin/bash

此命令将创建并运行一个基于 Ubuntu14.04 镜像的容器,容器内并运行一个命令/bin/bash,您将在容器内自动运行命令。

当你输入 Exit 命令退出容器时,容器也是停止运行,如果你想容器在后台运行需要在命令后面添加 -d 参数。

docker run -i -t -d ubuntu:14.04 /bin/sh -c “while true; do echo hello world; sleep 1; done”

/bin/sh -c “while true; do echo hello world; sleep 1; done” this is bash script to echo “hello word” forever.

现在你可以看到容器在后台运行通过命令:

docker ps

如果你想从 bash 命令看日志结果,使用命令:

docker logs NAMES/ContainerID

怎样在后台访问容器 shell?这个命令将会连接你的容器 shell:

docker exec -i -t NAMES/ContainerID

你可以看到主机名和容器ID是相等的,这意味着你在容器shell内。当你在shell 上键入’exit`,会离开的shell,但容器仍在运行。

你会经常使用的另一个命令是:

docker stop NAME/ContainerID

这将停止容器而不将其删除,这样你就可以用命令重新启动它:

docker start NAME/ContainerID

如果你想删除的容器,先停止它,然后用命令将其删除:

docker rm NAME/ContainerID

这是简单的使用方法,详细使用可访问这里

Docker安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Ubuntu 14.04安装Docker  http://www.linuxidc.com/linux/2014-08/105656.htm

Ubuntu使用VNC运行基于Docker的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm

阿里云CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm

Ubuntu 15.04下安装Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker http://www.linuxidc.com/Linux/2014-10/108184.htm

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

Ubuntu 上如何安装Docker的更多相关文章

  1. Redhat/Ubuntu/Windows下安装Docker

    Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...

  2. ubuntu 12.04 安装Docker 实战

    2016-3-8 从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境. 注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知. 查看系统相关信息 可 ...

  3. 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker

    Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

  4. 记录Ubuntu 16.04 安装Docker CE

    一.Docker的两个版本 Docker有两个版本: 社区版(CE) 企业版(EE) Docker Community Edition(CE)非常适合希望开始使用Docker并尝试使用基于容器的应用程 ...

  5. [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程

    之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...

  6. Ubuntu 20.04安装Docker

    Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...

  7. Ubuntu上如何安装Java,Eclipse,Pydev,Python(自带,不用装),BeautifulSoup

    如何安装Java,如果出于编程的需要安装Java,需要安装的是JDK,而不仅仅是JRE,下面说说如何在Ubuntu下如何安装JDK:只有两步,1.下载并解压,2.配置环境变量1.下载并解压:下载地址: ...

  8. 手把手教你在Ubuntu上分别安装Nginx、PHP和Mysql

    手把手教你在Ubuntu上分别安装Nginx.PHP和Mysql

  9. [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程

    Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心弄崩Host的环境. 而nvidia-docker2的好处是NVidia帮你配好了Host和Container之间的CUDA相 ...

随机推荐

  1. Job 和 Cronjob 的使用

    Job负责处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束.而CronJob则就是在Job上加上了时间调度. Job 我们用Job这个资源对象来创建一个任务,我们定一个Job来 ...

  2. svn 一、 安装及汉化

    svn 是日常开发过程中常用的版本控制工具 第一步 安装 进入官网 https://tortoisesvn.net/ 点击downloads 进入之后选中 需要的版本,及位数 这里推荐安装最新版的 因 ...

  3. Java笔记目录

    目录 一.Java语言概述... 1 1.计算机语言发展史... 1 1.1计算机语言的发展... 1 1.2人与计算机做交互... 1 1.3计算机语言... 1 1.4软件... 1 2.Java ...

  4. php基本,输出 ,变量

    <?php   //php开头//单行注释/*多行注释*/ echo "hello word";//输出 方式连续输出多个字符串print"hello word&q ...

  5. hdu6110

    #include <cstdio> #include <iostream> #include <cmath> #include <cstring> #i ...

  6. Go中的switch fallthrough

      Go基础 switch sExpr { case expr1: some instructions case expr2: some other instructions case expr3: ...

  7. CSS3:CSS3 简介

    ylbtech-CSS3:CSS3 简介 1.返回顶部 1. CSS3 简介 对CSS3已完全向后兼容,所以你就不必改变现有的设计.浏览器将永远支持CSS2. CSS3 模块 CSS3被拆分为&quo ...

  8. LeetCode 1108. Defanging an IP Address (IP 地址无效化)

    题目标签:String 题目给了我们一组 ip address,让我们把 . 变成 [.],这题可以用replace,但是这样做的话,好像没意义了.所以还是走一下array,具体看code. Java ...

  9. L1正则化可以解决过拟合问题(稀疏解)

    损失函数最小,也就是求极值点,也就是损失函数导数为0.上面也说了,如果d0+λ和d0-λ为异号的时候刚好为极值点,损失函数导数为0(w为0是条件).而对于L2正则化,在w=0时并不一定是极值点而是d0 ...

  10. CSS Sprites(CSS图像拼合技术)教程、工具集合

    本集合是有一位国外设计师收集整合,并由 oncoding翻译成中文的,感谢他们的辛苦贡献.CSS Sprites技术在国外并不是什么新技术,只不过近两年(尤其08年开始)中国开始流行这个词,大家也开始 ...