1.1 安装之前保持一个干净的Docker环境
sudo yum remove docker docker-common docker-selinux docker-engine
1.2 安装一些依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.3 下载repo文件
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
1.4 把软件仓管地址替换为 TUNA
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
1.5 安装
sudo yum makecache fast sudo yum install docker-ce
参考文档:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/
1.6 安装完成后可以使用:dock version 命令查看docker信息
二,安装docker-compose
2.1 先确认完成docker环境安装,再执行此步骤
2.2 参考文档:
https://docs.docker.com/compose/install/
2.3 以CentOS为例:
2.3.1下载docker compose执行文件
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.3.2 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
2.3.3 验证结果
docker-compose --version docker-compose version 1.17.0, build 1719ceb
三,下载镜像文件
3.1 配置国内Docker镜像加速,国内拉取官方docker镜像速度较慢
[root@linux-node1 data]# more /etc/docker/daemon.json
{"registry-mirrors": ["http://4c7d9402.m.daocloud.io"]}
3.2 下载Docker的Cent0S镜像
[root@linux-node1 ~]# docker pull centos Using default tag: latest latest: Pulling from library/centos d9aaf4d82f24: Pull complete Digest: sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a Status: Downloaded newer image for centos:latest
3.3 查看镜像
[root@linux-node1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest d123f4e55e12 3 weeks ago 197MB
3.4 根据一个镜像可以启动多个容器,启动容器的命令是docker run
[root@linux-node1 ~]# docker run -i -t centos /bin/bash [root@0ac90dce2eee /]#
-t 表示让Docker分配一个伪终端并绑定到容器的标准输入上
-i 表示让容器的标准输入保持打开
-d 表示以守护方式打开(即非交互模式,后台运行)
还有一个比较常用的,做网络配置时端口映射的参数-p,例如下面的命令将宿主机的3222端口映射到容器的22端口、将宿主机的3280端口映射到容器的80端口,用法如下:
#-p 设置端口映射 -p 宿主机端口:容器端口 docker run -t -i -p 3222:22 -p 3280:80 87e5b6b3ccc1 /bin/bash
3.5 搜索镜像,比如搜索一个redis的镜像,STARS 越多说明越好
3.5 查看及删除镜像
docker images: # 列出images docker images -a # 列出所有的images(包含历史) docker rmi <image ID>: # 删除一个或多个image
3.6 查看容器
docker ps :列出当前所有正在运行的container docker ps -l :列出最近一次启动的container docker ps -a :列出所有的container(包含历史,即运行过的container) docker ps -q :列出最近一次运行的container ID
3.7 重启容器等操作
docker start/stop/restart <container> #:开启/停止/重启container docker start [container_id] #:再次运行某个container (包括历史container) docker attach [container_id] #:连接一个正在运行的container实例(即实例须为start状态,可以多个窗口同时attach 一个container实例) docker start -i <container> #:启动一个container并进入交互模式(相当于先start,在attach) docker run -i -t <image> /bin/bash #:使用image创建container并进入交互模式, login shell是/bin/bash docker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。 #注:使用start是启动已经创建过得container,使用run则通过image开启一个新的 container。
3.8 删除容器
docker rm <container...> #:删除一个或多个container docker rm `docker ps -a -q` #:删除所有的container docker ps -a -q | xargs docker rm #:同上, 删除所有的container
四,Docker镜像文件导入导出
4.1 查看镜像id
[root@linux-node1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE sonarqube latest c1637bd4502f 12 days ago 934MB jenkins latest 3f08dc4f3f5d 3 weeks ago 809MB centos latest d123f4e55e12 3 weeks ago 197MB
4.2 选择要打包的镜像,执行打包命令
#方法一 [root@linux-node1 ~]# docker save -o centos.tar centos #镜像名称 [root@linux-node1 ~]# ls anaconda-ks.cfg centos.tar #方法二 确切的说,export其实是容器的保存,只把镜像当前的状态保存下来 [root@linux-node1 ~]# docker export -o centos-1.tar b2be6c76c9e2 #容器id
会在当前目录下生成导出文件xxx.tar,然后将此文件下载到本地
4.3 导入上述打包的镜像
五,使用Docker Compose管理多个容器
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。
- github.com/docker/compose
5.1 一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services
来定义,然后使用docker-compose
脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:
build 构建或重建服务 help 命令帮助 kill 杀掉容器 logs 显示容器的输出内容 port 打印绑定的开放端口 ps 显示容器 pull 拉取服务镜像 restart 重启服务 rm 删除停止的容器 run 运行一个一次性命令 scale 设置服务的容器数目 start 开启服务 stop 停止服务 up 创建并启动容器
参考 https://docs.docker.com/compose/install/ 。你能运行Compose在OSX和64位Linux
5.2 在上面2.1步骤中我们已经安装了 Doceker Compose
curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose
5.3 Compose的配置文件是docker-compose.yml
。让我们看看下面这个文件:
a. 定义了两个服务分别叫做gitlab,jenkins和sonarqube
b. 使用image
定义每个服务的镜像名
c. networks:定义网络类型
d. volumes:定义卷与本地磁盘的映射关系
e. 使用ports
实现端口转发
5.4 启动服务
docker-compose.yml是compose默认查找的文件,使用下面的命令,所有的服务将使用后台模式被启动
使用-f
指定代替的compose文件
使用-p
指定代替compose文件所在的目录
docker-compose up -d jenkins #也可以指定 docker-compose.yml中某一个服务运行
5.5 验证启动的服务
这里提供了一个整合的列表显示所有启动的服务和容器
5.6 通常使用docker ps
命令来验证应用的容器,和在Docker主机上运行的其他容器
5.7 停止服务
5.8 查看日志
转载:http://www.cnblogs.com/xiewenming/p/7903247.html