问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ubuntu16怎么安装docker

发布网友 发布时间:2022-04-20 14:59

我来回答

2个回答

热心网友 时间:2023-09-15 04:54

1.docker支持以下Ubuntu操作系统:
Ubuntu Xenial 16.04[LTS]  Ubuntu Trusty 14.04[LTS]  Ubuntu Precise 12.04[LTS]
2.前置需求
不管你是Ubuntu的哪个版本,Docker需要64的操作系统。此外你的kernel内核至少要在3.10版本之上。最近的3.10小版本或者最新的维护版本也是可以接受的。kernel3.10版本之前的系统缺少一些特性来运行docker容器。这些旧版本有些已知的bugs会导致数据丢失并且在一定条件下会频繁的故障。检查你当前的kernel版本,打开终端,输入
uname -r

注意:如果你之前使用APT安装过docker,为了新版本的docker仓库,确保你更新了APT源。
3.更新你的apt源
Docker的APT仓库包含1.7.1以及更高的版本。通过设置APT使用来自docker仓库的包。
1)登陆机器,用户必须使用sudo或者root权限。
2)打开终端
3)更新包信息,确保APT能使用https方式工作,并且CA证书已安装了
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates

出现这个问题可能是有另一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新没有正常完成,解决办法就是删掉。
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
4)添加一个新的GPG密钥
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
5)找到合适你的Ubuntu操作系统的键,这个键决定APT将搜索哪个包。可能的键有:
Ubuntu version    Repository
Precise 12.04     deb https://apt.dockerproject.org/repoubuntu-precise main
Trusty 14.04     deb https://apt.dockerproject.org/repoubuntu-trusty main
Xenial 16.04     deb https://apt.dockerproject.org/repoubuntu-xenial main
注意:docker没有为所有的架构提供包,Binary artifacts are built nightly,你可以从https://master.dockerproject.org. 处下载下来。在一个多架构的系统上安装docker,为键添加一个[arch=]条款。更多细节参考Debian Multiarch维基百科。
6)运行下面的命令,用占位符<REPO> 为你的操作系统替换键。
echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
比如你是16.04将上面命令的<REPO>
替换成deb https://apt.dockerproject.org/repoubuntu-xenial main 执行那条命令,就在那个文件夹下创建了一个docker.list文件,里面的内容就是
deb https://apt.dockerproject.org/repoubuntu-xenial main
7)更新APT包索引
sudo apt-get update
8)校验APT是从一个正确的仓库拉取安装包。
当运行下面命令的时候,这个键会返回你目前可以安装的docker版本,每个键都包括URL:https://apt.dockerproject.org/repo/。下面是截取的部分输出内容。
命令:apt-cache policy docker-engine

现在当你运行apt-get upgrade的时候,APT就会从新的仓库拉安装包。
4.某些Ubuntu版本需要的前置操作
Ubuntu Xenial 16.04[LTS]  Ubuntu Trusty 14.04[LTS]
这两个版本记得安装linux-iamge-extra-*的kernel包。这个包允许你使用aufs存储驱动。
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
Ubuntu Precise 12.04[LTS]
对于这个版本,你需要3.13以上的kernel版本,你必须升级。下面表格指导你需要哪些包:

你可以执行以下命令:
sudo apt-get install linux-image-generic-lts-trusty
sudo reboot
5.安装
1)登陆系统,用你的账号使用sudo全权限
2)更新APT包索引:sudo apt-get update
3)安装docker:sudo apt-get install docker-engine
4)开启docker后天进程:sudo service docker start
5)校验docker是否安装成功:sudo docker run hello-world
这个命令会下载一个测试镜像,并且运行在一个容器中。当容器运行时,他会打印一些信息,并且退出。
6.可选配置
6.1 创建一个docker组
docker后台进程是绑定的Unix的socket而不是TCP端口。默认情况下,Unix的socket属于用户root,其它用户要使用要通过sudo命令。由于这个原因,docker daemon通常使用root用户运行。
为了避免使用sudo当你使用docker命令的时候,创建一个Unix组名为docker并且添加用户。当docker daemon启动,它会分配Unix socket读写权限给所属的docker组。
注意:docker组不等价于用户root,如果想要知道的更多关于安全影响,查看docker daemon attack surface。
sudo groupadd docker
sudo usermod -aG docker $USER
退出再重进,确保该用户有正确的权限。
校验生效,通过运行docker命令不带sudo:docker run hello-world,如果失败会有以下类似的信息:Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?确保DOCKER_HOST环境变量没有设置。如果有取消它。
6.2 调整内存和交换区计算
当用户运行docker时,他们可能在使用一个镜像时看见下面的信息:
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
为了阻止这些信息,在你的系统中启用内存和交换区计算。这个操作会导致即便docker没有使用也有内存开销以及性能下降。内存开销大概是总内存的1%。性能降低了大约10%。
修改/etc/default/grub文件。vi或者vim命令都行,设置GRUB_CMDLINE_LINUX的值,如下:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"。保存文件并关闭。sudo update-grub更新启动项。reboot重启你的系统。
6.3启动UFW转发
当你运行docker时,在同一台主机上使用UFW(Uncomplicated Firewall) ,你需要额外的配置。docker使用桥接方式来管理容器的网络。默认情况下,UFW废弃所有的转发流量。因此,docker运行时UFW可以使用,你必须设置合适UFW的转发规则。
UFW默认配置规则拒绝了所有传入流量。如果你想要从另一个主机到达你的容器需要允许连接docker的端口。docker的默认端口是2376如果TLS启用,如果没有启动则是2375,会话是不加密的。默认情况,docker运行在没有TLS启动的情况下。
为了配置UFW并且允许进入的连接docker端口:
检查UFW是否安装并启用:sudo ufw status
打开/etc/default/ufw文件并编辑:sudo nano /etc/default/ufw
设置DEFAULT_FORWARD_POLICY:DEFAULT_FORWARD_POLICY="ACCEPT"
保存退出并重启使用新的设置:sudo ufw reload
允许所有的连接到docker端口:sudo ufw allow 2375/tcp
6.4 为使用docker配置DNS服务器
系统运行桌面的Ubuntu或者Ubuntu衍生产品通常使用127.0.0.1作为默认的nameserver文件/etc/resolv.conf文件中。NetworkManager也通常设置dnsmasq nameserver 127.0.0.1在/etc/resolv.conf。
当在桌面机器运行容器,使用这些配置时,docker的使用者会看见这些警告:
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
这个警告发生是因为docker容器不能使用本地DNS命名服务器。此外docker默认使用一个额外的nameserver。
为了避免这个警告,你可以在使用docker容器的时候指定一个DNS服务器。或者你可以禁用dnsmasq在NetworkManager中。但是,禁用会导致DNS协议在某些网络中变慢。
下面的说明描述了如何在Ubuntu14.0或以下版本配置docker守护进程。Ubuntu15.04及之上的使用systemd用于启动项和服务管理。指导通过使用systemd来配置和控制一个守护进程。
设置指定的DNS服务:
打开/etc/default/docker文件并编辑:sudo nano /etc/default/docker,添加配置项:DOCKER_OPTS="--dns 8.8.8.8"。将8.8.8.8用一个本地的DNS服务例如192.168.1.1替换。你也可以配置多个DNS服务器。用空格隔开它们,如:--dns 8.8.8.8 --dns 192.168.1.1。警告:当你在笔记本连接了不同网络的情况时做这些操作,确保选择一个公用的DNS服务器。保存文件并退出,重启docker守护进程:sudo service docker restart。
或者另一个选择,禁用dnsmasq在网络管理器中,这可能导致你的网速变慢:
打开/etc/NetworkManager/NetworkManager.conf文件,编辑它:sudo nano /etc/NetworkManager/NetworkManager.conf。找到行dns=dnsmasq,注释掉。保存关闭文件,重启网络管理器和docker.sudo restart network-manager sudo restart docker。
6.5 配置docker引导启动
Ubuntu15.04之后使用systemd作为引导启动和服务管理,14.10及以下版本是upstart。15.04以上,需要配置docker守护进程boot启动,运行命令:sudo systemctl enable docker
14.10及以下版本安装方法会自动配置upstart来启动docke daemon在boot。
7 升级卸载docker
升级:sudo apt-get upgrade docker-engine
卸载:sudo apt-get purge docker-engine
卸载及依赖:sudo apt-get autoremove --purge docker-engine
上述命令不会卸载images,containers,volumes或者用户自己创建的配置文件。你如果想删除这些东西,执行下面的命令:
rm -rf /var/lib/docker
安装最简单的方法是:sudo apt-get update   sudo apt-get install docker

热心网友 时间:2023-09-15 04:55

Docker 是 dotCloud 最近几个月刚宣布的开源引擎,旨在提供一种应用程序的自动化部署解决方案,简单的说就是,在 Linux 系统上迅速创建一个容器(类似虚拟机)并在容器上部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装、部署和升级,非常方便。因为使用了容器,所以可以很方便的把生产环境和开发环境分开,互不影响,这是 docker 最普遍的一个玩法。更多的玩法还有大规模 web 应用、数据库部署、持续部署、集群、测试环境、面向服务的云计算、虚拟桌面 VDI 等等。注意:由于Docker需要在Linux Kernel 3.8及以上才可以很好的工作【本人在ubuntu12.04 lts 内核3.2也正常安装】,官方更是推荐Ubuntu系统,这里有两种选择:Ubuntu 12.04 LTS或最新的Ubuntu 13.10 而本文比较喜欢倾向LTS,幸好有办法解决Kernel版本问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 微信下载的游戏打不开存放到哪里去了 怎样将多个excel工作簿合并为一个excel工作簿的多... 如何将excel表格合并到另一个excel表中 多个excel文件合并成一个excel文件的方法 把多个excel文件合并到一张表格 合并多个excel文件至一个表格 2007 求一个优雅的帮派名字女孩子喜欢的 求一个天龙八部帮派的名字(需要霸气和文雅的) 好听的帮会名字 谁帮我想一个好听的帮派名字!文雅有诗意而且响亮... 求好听的帮会名字 帮我想几个 优雅 好听的帮派名字 不要非主流的 求优雅的帮会分堂名称 求个 优雅 帮会名字 ?。 求个公会名字,要文雅点的。。 根据诗句取一帮派名,文雅不失霸气 寻一诗意的帮会名称 优雅古风四字的帮派名字!各位大神帮帮忙!!!复... 问道帮派名字,文雅的,有好的就说 4个字诗意的帮会名字有哪些? 如何在 Ubuntu 16.04 上安装并使用Docker ubuntu下 怎么安装docker 微信上的游戏下载后安装包在手机里的哪个文件夹里? 微信上的游戏下载后安装包在手机里的哪个文件夹里... ubuntu安装docker用什么用户 在微信发现页的游戏里下载后的游戏安装包在哪个文... 如何在ubuntu 32位安装docker 请教,如何在ubuntu环境下编译Docker的安装文件 微信游戏下载后在哪个文件 docker ubuntu镜像能不能安装 如何在Ubuntu中升级Docker 微信下载的游戏apk在手机上什么地方,怎么删除? ubuntu14.4 怎么安装docker 我用微信扫码进入了一个页面下载了一个安装包,之... docker必须在ubuntu下安装么 2020年农行房贷的利率是多少? 现在农行首套房贷款基本利率上浮多少? 2019年农行房贷利率是多少? 农行的房贷现在利率上浮了多少 农行房贷利率上浮是多少