Docker安装和使用

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 version

二,安装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 越多说明越好

 docker search redis

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。让我们看看下面这个文件:

 cat 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 查看日志

 docker-compose logs

 


转载:http://www.cnblogs.com/xiewenming/p/7903247.html

阅读更多
文章标签: Docker
个人分类: Docker
上一篇GitLab安装
下一篇git介绍及常用命令
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭