ubuntu 12.04 安装Docker 实战

简介:
2016-3-8

从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境。
注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知。


查看系统相关信息

可使用命令uname -a 、uname -r 、lsb_release -a 查看:

$ uname -a
> Linux zabbix 3.2.0-29-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

或:

$ uname -r
> Linux zabbix 3.2.0-29-generic 

或:

$ lsb_release -a
root@zabbix:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:        12.04
Codename:       precise
root@zabbix:~#

可看到当前的系统是 Ubuntu 12.04.2 LTS x86_64 Linux zabbix 3.2.0-29-generic

Ubuntu 12.04.2 LTS 64位 内核版本是 3.2.0-29-generic
***

插曲1:升级Package

这是测试时在网上找到的一种方法,经测试后发现这种方式只是更新了Package,并没有升级内核版本。
即只是将系统从 12.04.2 LTS 升级到了 12.04.5 LTS 版本。

运行命令:

  1. 升级包管理器

    $ sudo apt-get update
  2. 执行升级Package命令

    $ sudo apt-get dist-upgrade
  3. 重启

    $ sudo reboot

等待执行完成后,通过命令uname -a 查看系统信息:

$ uname -a
> Linux zabbix 3.2.0-100-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

插曲2:升级到 ‘14.04.4 LTS’

上面的 “插曲1:升级Package” 执行完成后,再次用ssh登陆后会有更新提示:

ssh登陆后有更新提示:
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-100-generic x86_64)

  • Documentation: https://help.ubuntu.com/
    New release '14.04.4 LTS' available.
    Run 'do-release-upgrade' to upgrade to it.

总结命令可能是:

$ sudo apt-get update
$ sudo apt-get do-release-upgrade
$ sudo reboot

看网上的评论说这种方式更新后偶有出现黑屏等不稳定情况,另外升级的时间也会太长,所以未尝试该方法。

上面的两个插曲可直接忽略,不影响下面的内核版本升级


升级Ubuntu的内核版本

Docker 官网上要求Docker需要在64位版本的Ubuntu上安装,并且还要保证 Ubuntu 内核的最小版本不低于 3.10。

从网上找到了两种内核版本:

  • 3.8 内核版本:

    $ sudo apt-get update
    $ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
  • 3.13 内核版本:

    $ sudo apt-get update
    $ sudo apt-get install linux-generic-lts-trusty

这里sudo apt-get install linux-generic-lts-trusty 也可以拆成两句:

$ sudo apt-get install linux-image-generic-lts-trusty
$ sudo apt-get install linux-headers-generic-lts-trusty

总结最后的升级内核步骤,linux系统内核从3.2.0-100-generic升级到3.13版本:

  1. 升级包管理器

    $ sudo apt-get update
  2. 安装升级内核3.13必需和可选的依赖包

    $ sudo apt-get install linux-generic-lts-trusty
  3. 重启系统

    $ sudo reboot

升级步骤记录:

  1. 安装前查看:

    root@zabbix:~# uname -a
    Linux zabbix 3.2.0-100-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    root@zabbix:~#
    root@zabbix:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 12.04.5 LTS
    Release:        12.04
    Codename:       precise
    root@zabbix:~#
  2. 执行上面的安装命令
  3. 安装后查看:

    root@zabbix:~# uname -a
    Linux zabbix 3.13.0-81-generic #125~precise1-Ubuntu SMP Thu Mar 3 11:31:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    root@zabbix:~#
    root@zabbix:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 12.04.5 LTS
    Release:        12.04
    Codename:       precise
    root@zabbix:~#

系统内核从3.2.0-100-generic升级到了3.13.0-81-generic,接下来可以安装Docker环境了。


Docker 环境安装

Docker 的安装可查看官方的安装教程: Docker官方安装教程

Docker安装总结:

  1. 以sudo管理员身份登陆,这里以root账户登录
  2. 判断系统中 curl 命令是否安装:

    $ whereis curl
    如果已经安装,则会输出curl命令所在的目录
  3. 如果没有安装curl,则执行安装命令:

    $ sudo apt-get update
    $ sudo apt-get install curl
  4. 安装Docker:

    $ curl -fsSL https://get.docker.com/ | sh

    也有命令为:

    $ curl -sSL https://get.docker.com/ | sudo sh
  5. 系统会要求输入sudo账户密码,等待安装docker及其依赖项。
  6. 安装完成后,会显示当前Docker的版本信息。
  7. 在Ubuntu系统下执行Docker命令时,每次都要输入sudo,同时输入密码,很累人的。 Docker 会提示将当前用户root 添加到docker 用户组中,可执行命令:

    $ sudo usermod -aG docker root
    注:这里的root可换成你自己的登陆账户
  8. 重启系统

    $ sudo reboot
  9. 查看上面的命令是否生效

    $ docker version
  10. 至此,Docker服务就安装完成了。


在Docker下运行一个输出Hello Docker的程序:

执行命令:

$ docker run busybox /bin/echo "Hello Docker"
Hello Docker

如果本地不存在busybox镜像,docker 会自动从官网下载相关镜像。

在Docker下搭建一个Nginx服务器:

  1. 从Docker Hub官网下载一个Ubuntu镜像:

    $ docker pull ubuntu:14.04
  2. 以交互方式启动一个名称为web的容器,指定宿主机的8080端口指向容器web80端口:

    $ docker run -it --name web -p 8080:80 ubuntu:14.04
    然后可以看到命令提示符由 root@zabbix:~# 变成了形如 root@45738573634:~# 的形式,说明我们现在成功进入了这个名为web的容器中;
  3. web容器内执行命令:

    $ sudo apt-get install -y curl
    $ sudo apt-get install -y nginx
  4. web容器内输入命令:

    $ curl localhost
    可以看到输出了Nginx的欢迎信息Welcome to nginx!
  5. 因为我的宿主服务器现在是联网的,所以我可以在外网访问到该Docker容器web里的Nginx欢迎页面:
    docker下成功运行nginx.jpg

至此,我们的Nginx服务器就搭建完成了。


相关网址及参考:

相关文章
|
8天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
65 25
|
25天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
135 42
|
19天前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
68 20
|
1月前
|
Linux Docker 容器
安装docker-18.06报错Error: libseccomp conflicts with docker-18.06
通过这些步骤,您可以成功在CentOS上安装Docker 18.06,并解决libseccomp的冲突问题。这些方法确保系统兼容性,并保证Docker的正常运行。
62 27
|
19天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
278 15
|
17天前
|
消息中间件 Kafka Docker
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
62 2
|
2月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
268 93
|
19天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
58 23
|
3月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
323 78
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等