从Docker零基础到懂一点实践教程(二)
Docker的安装和部署在Ubuntu中安装(Ubuntu 16.04)准备工作检查内核版本检查Device Mapperschen@scvmu01:~$ uname -r4.4.0-21-genericschen@scvmu01:~$schen@scvmu01:~$ ls -l /sys/class/misc/device-mapperlrwxrwxrwx 1 root root
·
Docker的安装和部署
在Ubuntu中安装(Ubuntu 16.04)
准备工作
- 检查内核版本
- 检查Device Mapper
schen@scvmu01:~$ uname -r
4.4.0-21-generic
schen@scvmu01:~$
schen@scvmu01:~$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 Aug 30 22:03 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
使用apt-get默认源安装
这种方法安装的Docker比较旧,官方推荐使用Docker自己维护的源来安装。
使用Docker官方源安装
这种方法可以安装到最新的Docker组件,但是安装的过程比较繁琐,因此docker.com官方网站为我们提供了一键式安装脚本。
如果你的计算机上没有curl
命令,可以使用sudo apt-get install -y curl
来进行安装。
schen@scvmu01:~$ whereis curl
curl: /usr/bin/curl /usr/share/man/man1/curl.1.gz
schen@scvmu01:~$
schen@scvmu01:~$ curl -sSL https://get.docker.com/ | sh
apparmor is enabled in the kernel and apparmor utils were already installed
+ sudo -E sh -c apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: /tmp/tmp.q2dhuhjpWx/gpg.1.sh --keyserver
hkp://ha.pool.sks-keyservers.net:80
--recv-keys
58118E89F3A912897C070ADBF76221572C52609D
gpg: requesting key 2C52609D from hkp server ha.pool.sks-keyservers.net
gpg: key 2C52609D: public key "Docker Release Tool (releasedocker) <docker@docker.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
+ break
+ sudo -E sh -c apt-key adv -k 58118E89F3A912897C070ADBF76221572C52609D >/dev/null
+ sudo -E sh -c mkdir -p /etc/apt/sources.list.d
+ dpkg --print-architecture
+ sudo -E sh -c echo deb \[arch=amd64\] https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list
+ sudo -E sh -c sleep 3; apt-get update; apt-get install -y -q docker-engine
Hit:1 http://cn.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://cn.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://cn.archive.ubuntu.com/ubuntu xenial-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:5 https://apt.dockerproject.org/repo ubuntu-xenial InRelease [30.2 kB]
Get:6 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages [2,313 B]
Fetched 127 kB in 3s (36.2 kB/s)
Reading package lists... Done
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
aufs-tools cgroupfs-mount libltdl7
Suggested packages:
mountall
The following NEW packages will be installed:
aufs-tools cgroupfs-mount docker-engine libltdl7
0 upgraded, 4 newly installed, 0 to remove and 145 not upgraded.
Need to get 19.6 MB of archives.
After this operation, 102 MB of additional disk space will be used.
Get:1 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]
Get:2 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B]
Get:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libltdl7 amd64 2.4.6-0.1 [38.3 kB]
Get:4 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 docker-engine amd64 1.12.1-0~xenial [19.5 MB]
Fetched 19.6 MB in 37s (521 kB/s)
Selecting previously unselected package aufs-tools.
(Reading database ... 61537 files and directories currently installed.)
Preparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb ...
Unpacking aufs-tools (1:3.2+20130722-1.1ubuntu1) ...
Selecting previously unselected package cgroupfs-mount.
Preparing to unpack .../cgroupfs-mount_1.2_all.deb ...
Unpacking cgroupfs-mount (1.2) ...
Selecting previously unselected package libltdl7:amd64.
Preparing to unpack .../libltdl7_2.4.6-0.1_amd64.deb ...
Unpacking libltdl7:amd64 (2.4.6-0.1) ...
Selecting previously unselected package docker-engine.
Preparing to unpack .../docker-engine_1.12.1-0~xenial_amd64.deb ...
Unpacking docker-engine (1.12.1-0~xenial) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Setting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...
Setting up cgroupfs-mount (1.2) ...
Setting up libltdl7:amd64 (2.4.6-0.1) ...
Setting up docker-engine (1.12.1-0~xenial) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
+ sudo -E sh -c docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker schen
Remember that you will have to log out and back in for this to take effect!
查看Docker版本并运行第一个容器
schen@scvmu01:~$ sudo docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
schen@scvmu01:~$ sudo docker run ubuntu echo 'Hello world'
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
952132ac251a: Pull complete
82659f8f1b76: Pull complete
c19118ca682d: Pull complete
8296858250fe: Pull complete
24e0251a0e2c: Pull complete
Digest: sha256:f4691c96e6bbaa99d99ebafd9af1b68ace2aa2128ae95a60369c506dd6e6f6ab
Status: Downloaded newer image for ubuntu:latest
Hello world
schen@scvmu01:~$
为当前用户添加docker用户组
我们注意到每次运行docker
命令都需要使用sudo
执行,这样显得十分麻烦,我们可以通过把当前用户添加到docker组来解决这个问题,它的步骤如下:
1. 将当前用户添加到docker组
2. 注销后重新登录服务器
schen@scvmu01:~$ sudo usermod -aG docker schen
schen@scvmu01:~$
schen@scvmu01:~$ logout
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)
* Documentation: https://help.ubuntu.com/
146 packages can be updated.
42 updates are security updates.
Last login: Tue Aug 30 22:07:06 2016 from 192.168.199.172
schen@scvmu01:~$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
schen@scvmu01:~$
如果你看到了下面的错误,很可能是你忘记了重新登录:
schen@scvmu01:~$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
schen@scvmu01:~$
小结
Docker目前支持包含Linux、Windows、Mac OS在内的多种平台,具体的安装文档可以参考:
更多推荐
已为社区贡献3条内容
所有评论(0)