大前提:

用一个有sudo权限的账号登陆ubuntu。 如果账号没有sudo的权限,登陆后输入sudo -s,然后输入此账号密码即可。 这样就不用每个命令开头都输入sudo

开始安装

  • 确保安装了wget

使用which命令来确认

which wget

如果没装,使用下列两个命令安装

apt-get update

apt-get install wget

  • 获取最新的Docker安装包

输入下方命令:

wget -qO- https://get.docker.com/ | sh

自动安装,等待结束。

enter image description here

  • 确认docker是否被正确安装

    docker run hello-world

enter image description here

可选的Docker配置

  • 创建docker用户组创建用户组,加入你的账号

假设你的账号名就是 docker,用下列命令创建并加入你的账号

usermod -aG docker docker

登出然后登入,确保你的用户拥有正确的权限

确认能否正常运行docker

docker run hello-world

enter image description here

  • 调整memory和swap

运行Docker时,可能会看到下列信息:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.

为了消除这个警告,你要调整memory和swap,使用GNU GRUB (GNU GRand Unified Bootloader), 按照下列步骤做:

编辑 /etc/default/grub

gedit /etc/default/grub

将 GRUB_CMDLINE_LINUX 改成如下:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

存盘退出此文件

更新 GRUB

update-grub

enter image description here

重启系统

  • 启动防火墙

如果你在运行docker的环境下使用了防火墙,还需要做些额外配置。docker是使用“桥接”方式来管理容器间的网络通信。缺省情况下,防火墙会挡住所有外部IP。所有要想在这种情况下,正常运行docker,要正确地设置防火墙的forward策略。

此外,防火墙在缺省情况下,会拒绝所有进入的流量,所以要想使你的容器被其他主机访问,你应该允许它们访问docker的端口(缺省是2375)

配置如下:

确认安装了防火墙并已经启动

ufw status

enter image description here

如果没启动,输入命令

ufw enable

编辑 /etc/default/ufw

gedit /etc/default/ufw

设置 DEFAULT_FORWARD_POLICY

DEFAULT_FORWARD_POLICY="ACCEPT"

存盘退出此文件

重启防火墙

ufw reload

允许访问Docker 端口.

ufw allow 2375/tcp

  • 配置DNS

当启动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缺省使用的是外部的命名服务器。 要解决这个问题,你要设定一个DNS服务器来给docker的容器使用,或者在NetworkManager里让dnsmasq 失效,但这样可能会让DNS解析的有点慢。

设定DNS的步骤:

编辑 /etc/default/docker

gedit /etc/default/docker

找到 DOCKER_OPTS="--dns 8.8.8.8" 用一个本地的DNS来替换8.8.8.8.

也可以设定多个DNS. 用空格分隔: --dns 8.8.8.8 --dns 192.168.5.1

enter image description here

存盘退出此文件

重启Docker 守护进程.

restart docker

  • 更新 Docker

使用下列命令来更新docker

wget -N https://get.docker.com/ | sh

enter image description here

感谢您抽出宝贵的时间阅读我写的东西,谢谢!