最近听说docker很火,不知道什么东西,只知道是一个容器,可以跨平台。闲来无事,我也来倒弄倒弄。本文主要介绍:ubuntu下的安装,以及基本的入门命令介绍;我的机器是ubuntu15.04 64位
什么是Docker
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上进行维护。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
安装docker
docker安装方法一
ubuntu14.04以上的版本都是自带docker安装包的;所以可以直接安装;但是这个一般不是最先版本
sudo apt-get update
sudo apt-get install docker.io
docker安装方法二;安装最新版本
sudo apt-get update
curl -s https://get.docker.io/ubuntu/ | sudo sh
这个方法启动docker若出现下面错误;(这个我没遇到)
FATA[0000] Error loading docker apparmor profile: fork/exec /sbin/apparmor_parser: no such file or directory ()
别担心,请安装apparmor软件即可
sudo apt-get install apparmor
用户组和配置文件修改
把当前用户加入到docker用户组中
sudo usermod -a -G docker $USER
添加配置文件
sudo vim /etc/default/docker
在配置文件中添加或修改
DOCKER="/usr/bin/docker"
重启docker
sudo service docker restart #重启
安装完成之后可以测试下面几个命令
查看版本
docker -v
显示如下:
这就表明你安装成功了
查看状态:
sudo service docker status
显示如下:
其他状态命令:
sudo service docker start #启动
sudo service docker stop #关闭
sudo service docker restart #重启
查看镜像:此时应该没有镜像
docker images
显示如下:
安装第一个镜像ubuntu
下载docker 镜像,需要几分钟。
sudo docker pull ubuntu
启动容器,并且进入到Ubuntu容器的bash命令
sudo docker run -i -t ubuntu /bin/bash
输出hello world
下载时的现象:
启动时的现象:其实相当于启动了一个虚拟机;
输出hello world:
ps命令:
docker常用命令速查
# 下载一个ubuntu镜像
sudo docker pull ubuntu
# 使用ubuntu运行一个交互性的shell,
# 分配一个伪终端,附带stdin和stdout(输入/输出流)
# 如果你想退出分离出来的伪终端,
# 可以使用CTRL -p+CTRL -q --就像先按CTRL -p 然后CTRL -q
sudo docker run -i -t ubuntu /bin/bash
#docker ps命令
sudo docker ps #列出当前所有正在运行的container
sudo docker ps -l #列出最近一次启动的,且正在运行的container
sudo docker ps -a #列出所有的container
#port命令
docker run -p 80:8080 <image> <cmd> #映射容器的8080端口到宿主机的80端口
#删除容器命令
sudo docker rm `sudo docker ps -a -q`#删除所有容器
sudo docker rm $CONTAINER_ID#删除容器id为CONTAINER_ID的容器
#其他命令快速参考:
sudo docker images #查看本地镜像
sudo docker attach $CONTAINER_ID #启动一个已存在的docker实例
sudo docker stop $CONTAINER_ID #停止docker实例
sudo docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行
sudo docker inspect $CONTAINER_ID #查看container的实例属性,比如ip等等
#删除镜像
sudo docker rmi ubuntu
#删除none镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
sudo docker run -t -i -v /home/linjiqin/dev/docker:/home/mycontainer:rw -p 8000:8000 mydocker /bin/bash
写在前面,运行我们的镜像的命令使用上面的为参考,这样会挂载本地文件夹,并且会映射container的8000端口到宿主机的8000端口
/home/linjiqin/dev/docker为要挂载的本地文件夹,需提前创建
/home/mycontainer为docker映射路径,执行上面命令会帮我们创建