如何在Ubuntu 14.04上安装Docker并运行image
一. 环境确认和准备
1. 所要安装的正是Trusty 14.40 (LTS), 硬件是x86_64的。
目前仅支持以下3个64 bit的Ubuntu 版本,支持x86_64 和armhf (ARM)硬件架构。
Yakkety 16.10
Xenial 16.04 (LTS)
Trusty 14.04 (LTS)
2. . 删掉先前安装过的旧版docker(新版的名字有变化)
sudo apt-get remove docker docker-engine /// 新的版本中,社区版的叫docker-ce, 企业版的叫docker-ee
二. 开始安装
1. 安装linux-image-extra-* 以便docker能使用aufs存储驱动
sudo apt-get update
sudo apt-get install linux-image-extra-(uname -r) linux-image-extra-virtual
2. 安装docker
有两种安装方式,一种是通过docker repository(docker 仓库在线安装),另一种是下载安装包离线安装。
两种方式都试了,但在线方式一直卡住不动,只好用了离线方式。两种安装方式分别如下:
2.1 在线安装
a. 安装apt通过https访问所需要的包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
b. 安装docker的官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | duso apt-key add -
并用下面命令确认新安装KEY的指纹是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo apt-key fingerprint 0EBFCD88
结果如下:
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
c. 安装docker repository 到apt source
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" // 如果是ARM架构,arch=armhf, $(lsb_release -cs) 主要是列出当前ubuntu disctibution名字
sudo apt-get update
备注: 如果sudo add-apt-repository 或update 没执行成功,手工把这行加到/etc/apt/source.list中也可
deb [arch=amd64] https://download.docker.com/linux/ubuntu trusty stable
d. 开始安装
sudo apt-get install docker-ce
2.2 离线下载
到https://download.docker.com/linux/ubuntu/dists/trusty/pool/stable/amd64/ 下载下面的 .deb安装包,ubuntu 14.40对应的是trusty,不同版本要到对应目录中下,速度不快
sudo dpkg -i path_to_package.deb
三. 运行确认安装已OK
sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
ps -ef | grep docker 也能看到已运行的dockerd和docker-containerd.
+ 2003 4225 0 15:16 pts/31 00:00:00 grep --color=auto docker
root 31976 1 0 14:17 ? 00:00:04 /usr/bin/dockerd --raw-logs
root 31989 31976 0 14:17 ? 00:00:02 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
下来就可以pull 远程的image 跑真正的项目了 $ sudo docker docker_dev.sh ......
四. 常用操作命令
docker images // list imges
docker ps -a // list the containers running
docker pull // download image from repository
docker commit // create image
docker rm // delete container
docker rmi // delete images
docker run // run image/command in a new container
docker logs xxx (xxx 为docker images 列出的image id) // view the logs of running image
i.e. running ubuntu:14.04 image
sudo docker run -i -t ubuntu /bin/bash or
sudo docker pull ubuntu:14.04
sudo docker images
docker run -i -t ubuntu:14.04 // terminal 提示符将显示所进入docker的HOSTNAME
do any change in this image but exit without save, enter again, nothing changed.