一、准备工作
1.1、需要内核版本>=2.6.32-431,因为这些内核包含了运行Docker的一些特定修改。
1.2、直接安装centos7以上的操作系统,可以省去升级内核和组件的麻烦。
1.3、Device Mapper
Docker默认使用AUFS作为存储驱动,但是AUFS并没有被包括在Linux的主线内核中。CentOS中可以使用Device Mapper作为存储驱动,这是在2.6.9内核版本引入的新功能。我们需要先确认是否启用该功能:
$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 May 1 20:55 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
如果没有检测到Device Mapper,需要安装device-mapper软件包:
$ sudo yum install -y device-mapper
然后重新加载dm_mod内核模块:
$ sudo modprobe dm_mod
二、安装
2.1、基础环境配置
yum -y install gcc gcc-c++
卸载旧版本,如果 yum 报告未安装任何这些软件包,这表示情况正常,没有残留。
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
2.2安装docker
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件索引
yum makecache fast
安装最新版本docker
yum -y install docker-ce
启动docker
systemctl start docker
三、测试docker命令
查看docker版本
docker version
查看docker日志
cat /var/log/messages
搜索镜像(镜像是类似一个有特定软件环境的最小化操作系统,自行查资料了解)
docker search nginx(centos,ubuntu,tomcat等等)
docker images [options] [repository [:tag] ] 查看本机有哪些镜像 或查看镜像是否拉取成功了 options是参数, repository 和tag 是指定查看某一个镜像
查看当前所有镜像
docker images
下载镜像:docker pull [options] name [:tag] 表示从仓库拉取镜像 options是参数 tag是版本
docker pull centos
运行容器:
docker run [options] image [:tag] [command] [arg...]
运行一个容器 以镜像为模版创建容器 options 操作 tag版本 command 运行时候执行的命令 arg 参数
docker run centos echo "hello word"
运行容器 hello word,通过这个来看下执行过程。
docker run hello-world
翻译一下大概意思。
本地没有hello-world镜像,则先从仓库拉取镜像。
你能看到下面的信息证明运行正常。
1.docker客户端连接到docker的守护进程
2.docker守护进程从docker hub仓库里面拉取了hello-world镜像
3.docker守护进程用这个镜像创建了新的进程并运行了一个可执行文件
4.docker守护进程将流输出到docker客户端并发送到你的终端控制台
查看运行中的容器 :docker ps
查看所有的容器: docker ps -a
停止运行的容器:docker stop [CONTAINER ID]
启动已停止的容器:docker start [CONTAINER ID]
删除容器:docker rm [CONTAINER ID] 或者docker rm [NAMES]
删除所有容器:docker rm $(docker ps -a -q)
删除下载的镜像:docker rmi [IMAGE ID] 或者 docker rmi [REPOSITORY:TAG]
重命名镜像: docker tag IMAGEID REPOSITORY:TAG
重命名容器:docker 容器名 新容器名