今天初次在centOS7系统上安装使用docker,下边是本次安装docker的实践:
因为网络的原因,配置yum源并不能正常的下载安装docker,所以采用的方法是在本地手动下载好docker的rpm包,然后采用本地yum安装的方法进行测试。
下载地址:https://yum.dockerproject.org/repo/main/centos/7/Packages/ (需要翻墙)
选择的安装包:
docker-engine-1.10.3-1.el7.centos.src.rpm 10-Mar-2016 21:37 98M
docker-engine-1.10.3-1.el7.centos.x86_64.rpm 10-Mar-2016 21:37 9.6M
下载完成后上传到虚拟机,然后运行命令:
// 安装
yum localinstall -y docker-engine*
// 删除安装包
rm -f docker-engine-1.10.3-1.el7.centos.x86_64.rpm docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
// 启动Docker引擎
$ sudo systemctl enable docker
$ sudo systemctl start docker
// 建立docker用户组(默认已经存在)
$ sudo groupadd docker
// 将当前用户加入 docker 用户组
$ sudo usermod -aG docker $USER
// 使用加速器,这里我使用的是DaoCloud提供的加速器,如果版本<1.12虽然提示成功,但并没有配置成功,所以此时升级了docker版本为1.13.1提示成功,如图1:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://31f9e58d.m.daocloud.io
// 至于另一种加速方法 若使用systemd的系统:如图2:
// 重新加载配置并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
图一:
图二:
运行docker:
docker run -it --rm ubuntu:14.04 bash
-it:交互式终端
-i:交互式操作;-t:终端。
--rm:容器退出之后随之将其删除。默认情况下为了拍张要求,退出的容器并不会立即删除,除非手动 docker rm.
ubuntu:用该镜像为基础来启动容器。
bash:放在镜像名后面的是命令,bash会使结果有一个交互式shell。
列出镜像:
docker images /docker image ls
结果列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间。
列出所有镜像:
docker images -a
列出部分镜像:
docker images ubuntu
列出某个特定的镜像(指定仓库名和标签):
docker images ubuntu:16.04
删除镜像(指定仓库名和标签):
docker image repository:tag
还可以特定样式等过滤功能。
例子1:nginx服务器docker 构建:
nginx pull nginx // 具体哪个nginx也可在hub.docker搜索获取,也可通过docker search nginx搜索获取
docker run --name webserver -d -p 8080:80 nginx
// 这句的意思是运行一个名为webserver的容器,并将宿主机的8080端口映射到docker容器上,此时访问宿主机的192.168.0.233:8080就相当于访问docker的80端口
打开浏览器访问:
使用docker exec进入docker容器并修改页面(交互式终端方式)
docker exec -it webserver bash
// 修改内容
echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
// 查看变化
docker diff webserver
// 保存定制新的镜像(慎用!!!!不用!!!如定制镜像,使用dockerfile)
docker commit \
--author "CPF <xxx@gmail.com>" \ // 可省略,指修改的作者
--message "修改了默认网页" \ // 可省略,本次修改的内容说明
webserver \
nginx:v2
(待续......)