系统: Centos系统
docker中文社区 http://www.docker.org.cn/index.html
教程:http://www.runoob.com/docker/centos-docker-install.html
Docker 要求 CentOS 系统的内核版本高于 3.10
查看前的内核版本:
uname -a 或者 uname -r
如果需要升级内核了。 升级内核的方式如下:
yum install -y kernel
升级完成 执行命令 reboot 进行重启
使用uname -a 查看当前版本
yum update 升级本地yum包
yum 源更改为阿里yum源
卸载Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装Docker
安装Docker软件包
sudo yum -y install docker-io
启动Docker守护进程 在Centos系列系统中,安装完成后我们需要设置启动Docker。 启动Docker守护进程的命令如下:
sudo service docker start
检查Docker安装是否正常
sudo docker info
查看docker version验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
第二次安装docker 启动运行
docker run hello-world
报错
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:293: copying bootstrap data to pipe caused \"write init-p: broken pipe\"": unknown.
这个可能是版本的问题
卸载了之后安装的时候需要进行指定版本安装。
安装成功后输入docker info查看发现有错误:
错误信息:
Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
大意是用loopback的方式运行docker是强烈不建议的。
参照:https://blog.csdn.net/u013246459/article/details/79007688
更换系统为 overlay
停止 docker systemctl stop docker 清理数据(好像 images可能会被清空) rm -rf /var/lib/docker 编辑 docker-storage vi /etc/sysconfig/docker-storage DOCKER_STORAGE_OPTIONS= -s overlay
重启 发现更换成功。
执行测试 执行成功。
---------------------------------------------------------------------------------------
执行命令:
docker run ubuntu:15.10 /bin/echo "Hello world"
如果没有下载安装镜像ubuntu:15.10 就会默认去下载安装
运行输出 Hello world
docker 查看镜像
docker images
运行交互式的容器
docker run -i -t ubuntu:15.10 /bin/bash
这就是进入了 ubuntu15.10系统的容器里。
可以通过运行exit命令或者使用CTRL+D来退出容器。
启动容器(后台模式)
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
这个输出的长字符串叫做容器ID,对每个容器来说都是唯一的。
查看运行中的容器:
docker ps
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用【docker logs + 容器Id/ 容器名称】命令,查看容器内的标准输出
停止容器【docker stop + 容器id/容器名称】
docker stop tender_lovelace
docker info下 发现 Containers个数有很多个:
使用 docker ps -a命名查看
然后根据【docker rm + 容器id】 执行删除操作
docker删除所有容器:
docker rm $(docker ps -aq)
docker 删除镜像
docker images查看
【docker rmi + 镜像_Id/镜像名称:tag】
检查发现删除成功
使用repository:tag来删除镜像:
docker查找镜像
docker search XXX
docker 下载镜像
【docker pull + 名称】
查看发现下载成功
镜像的更新
在运行的容器内使用 apt-get update 命令进行更新。
镜像的创建
使用 docker ps -a 查看所有容器的 CONTAINER ID
使用docker commit命令进行对镜像的创建:
【docker commit + 容器Id(CONTAINER ID) + 镜像名称】
docker commit aa76401d150a tttt-ubuntu
将容器 223ab83c6392 保存为新的镜像,并添加提交人信息和说明信息。
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。