美文网首页
Centos7上安装docker

Centos7上安装docker

作者: fanzhouyuanhang | 来源:发表于2019-10-25 11:23 被阅读0次

    Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

    社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

    社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

    一、安装docker

    1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

    通过 uname -r 命令查看你当前的内核版本

    $ uname -r

    2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

    $ sudo yum update

    3、卸载旧版本(如果安装过旧版本的话)

    $ sudo yum remove docker  docker-common docker-selinux docker-engine

    4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    5、设置yum源

    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    6、可以查看所有仓库中所有docker版本,并选择特定版本安装

    $ yum list docker-ce --showduplicates | sort -r

    7、安装docker

    $ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0

    $ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

    8、启动并加入开机启动

    $ sudo systemctl start docker

    $ sudo systemctl enable docker

    9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

    $ docker version

    二、问题

    1、之前已经安装过旧版本的docker,在安装的时候会报错如下:

    Transaction check error:

      file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

      file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

      file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

      file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

    2、卸载旧版本的包

    $ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

    3、再次安装docker

    $ sudo yum install docker-ce

    #第二种方法安装docker

    yum install docker -y

    systemctl start docker

    systemctl enable docker

    #Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

    #查看docker基本信息

    docker info

    #docker镜像下载

    #docker search : 从Docker Hub查找镜像

    docker search centos

    #下载镜像

    #Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    docker pull docker.io/centos

    #查看镜像列表

    docker images

    #镜像标记

    #docker tag : 标记本地镜像,将其归入某一仓库。

    #docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

    docker tag ff426288ea90 registry

    #运行一个container

    #docker run :创建一个新的容器并运行一个命令

    #docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -P: 随机端口映射,容器内部端口随机映射到主机的高端口

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    -h "mars": 指定容器的hostname;

    -e username="ritchie": 设置环境变量;

    --env-file=[]: 从指定文件读入环境变量;

    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    -m :设置容器使用内存最大值;

    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

    --link=[]: 添加链接到另一个容器;

    --expose=[]: 开放一个端口或一组端口;

    --volume , -v: 绑定一个卷

    docker run -dit registry:latest /bin/bash

    docker ps -a

    #进入/退出/杀死一个容器

    #docker attach :连接到正在运行中的容器。

    #docker attach [OPTIONS] CONTAINER

    docker attach CONTAINER_ID

    #这时发现通过exit退出容器。容器会关闭。

    #通过Ctrl+P+Q的方式退出。容器不会关闭

    #docker kill :杀掉一个运行中的容器。

    docker kill CONTAINER_ID

    #获取容器日志

    #docker logs : 获取容器的日志

    #docker logs [OPTIONS] CONTAINER

    -f : 跟踪日志输出

    --since :显示某个开始时间的所有日志

    -t : 显示时间戳

    --tail :仅列出最新N条容器日志

    docker logs -f CONTAINER_ID

    #删除容器

    docker rm :删除一个或多少容器

    docker rm [OPTIONS] CONTAINER [CONTAINER...]

    -f :通过SIGKILL信号强制删除一个运行中的容器

    -l :移除容器间的网络连接,而非容器本身

    -v :-v 删除与容器关联的卷

    docker rm -f CONTAINER_ID

    相关文章

      网友评论

          本文标题:Centos7上安装docker

          本文链接:https://www.haomeiwen.com/subject/jxlsvctx.html