centos6、centos7安装docker服务及docker-compose

1、安装

1.1、安装前提

centos docker安装
docker支持centos7(64-bit)、centos 6.5(64-bit)或更高的版本
前提条件
目前,centos仅发行版本中的内核支持docker。

docker运行在centos7上,要求系统为64位、系统内核版本为3.10以上。

docker运行在centos-6.5或更高的版本的centos上,要求系统为64位、系统内核版本位 2.6.32-431或者更高版本
查看自己的内核

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

uname -r

查看已安装的centos版本信息

lsb_release -a
或者cat  /etc/redhat-release

1.2、centos6.8的安装

1、安装
centos6从20年1月份开始已停止维护
All mirror URLs are not using ftp, http[s] or file. Cannot find a valid baseurl for repo: base
20201205 centos6 20201130 停止维护了 官方源已经没有用了 镜像源也肯定没用了
YUM报错那是肯定的!!!

已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yu
错误:Cannot find a valid baseurl for repo: base

解决方法:

新的源: vault.centos.org

修改 /etc/yum.repos.d 中的 CentOS-Base.repo

1.注释所有的 mirrorlist= #mirrorlist=
2.取消所有的 baseurl 注释
3.将 baseurl 中的mirrorlist.centos.org 改为 vault.centos.org,将版本号不要使用默认系统的,改成6.8
  1. yum install -y epel-release

  2. yum install -y docker-io

注:使用该指令可能报以下错

centos6、centos7安装docker服务及docker-compose_第1张图片

这句话是用源安装docker,可是源一般是国外源,用这个命令因为GFW被墙,根本安装不了。

所以执行下面命令:

yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
  1. 安装后的配置文件:/etc/sysconfig/docker

​ 要配置一个阿里云的镜像加速器
通过https://dev.aliyun.com/search.html去获取镜像加速器

把加速地址放入到配置文件中

这是因为我们拉取的镜像默认是国外的镜像,所以网速特别慢,所以需要的一个加速器来帮助我们

修改配置,加速地址就是后面那串

other_args="--registry-mirror=https://7r075jgf.mirror.aliyuncs.com"
  1. 启动docker后台服务

     service docker start
    
  2. docker version验证

2、卸载
yum remove docker   docker-client docker-client-latest docker-common  docker-latest  docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/run/docker
rm -rf /var/lib/docker

1.3、centos7的安装

1、官方网站中文

http://docs.docker.com/install/linux/docker-ce/centos

2、确定你是centos7

cat /etc/redhat-release

3、yum安装gcc相关


​    1、centos能连上外网

​    2、yum -y install gcc

​    3、yum -y install gcc-c++

4、删除老的软件包

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

5、安装所需要的包

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

6、设置stable镜像仓库


yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7、更新yum软件包索引


yum makecache fast

8、安装docker ce

yum -y install docker-ce

9、启动docker

systemctl start docker

10、配置镜像加速
`

​ 1、mkdir -p /etc/docker

​ 2、vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://7r075jgf.mirror.aliyuncs.com"]
}

​ 3、systemctl daemon-reload

​ 4、systemctl restart docker

11、卸载

systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker

12、docker 服务重启配置

systemctl enable docker.service

1.4、docker-compose

1.4.1、简介

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。

Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理

1.4.2、安装docker-compose

1、下载docker-compose稳定版本

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果想替换其他版本更换1.29.2

2、赋予权限

chmod +x /usr/local/bin/docker-compose

1.4.3、使用

1、启动指定docker-compose文件

docker-compose -f 文件名 up -d

2、停止服务

docker-compose -f 文件名 stop

3、停止并删除服务

docker-compose -f 文件名 down

注:当docker-compose.yml文件所在目录只有一个这样的文件,在该目录下可以直接使用docker-compose start/up/stop/restart指令操作

2、docker的一些使用技巧

1、docker容器重启

1、当创建容器的时候没有添加参数 --restart=always,则会docker 重启的时候,容器未能自动重启。

docker container update --restart=always 容器名字

2、当使用docker-compose关机或者重启docker同时重启容器restart always的配置

方法一:使用docker 命令修改(适用于centos7)

docker container update --restart=always 容器名字

方法二:直接改配置文件

找到/var/lib/docker/containers/容器id

当时用docker ps看到的容器id就是平时使用·容器id的缩写

修改配置文件hostconfig.json

记住:修改配置之前一定要关闭docker服务,要不然修改会失效


修改前配置:`"RestartPolicy":{"Name":"no","MaximumRetryCount":0}`

修改后配置:`"RestartPolicy":{"Name":"always","MaximumRetryCount":0}`

2、修改已启动容器的端口映射

1、修改服务器映射端口

修改hostconfig.json配置文件中的内容,修改中括号内内容
{"9100/tcp":[{"HostIp":"","HostPort":"9116"}]}

2、修改容器内部映射

修改中括号外内容还有config.json中端口号

3、进入容器简化指令

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

使用完之后可以使用docker-enter进入

3、容器中时间与宿主机时间不一致

1、进入容器内部

2、复制时间文件

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

或者

docker cp /usr/share/zoneinfo/Asia/Shanghai sentinel:/etc/localtime

但是很多情况下该文件会报错

cp: not writing through dangling symlink '/etc/localtime'

3、删除localtime

rm -rf /etc/localtime

4、重新复制

cp -i /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5、查看当前镜像的所有版本的shell命令

curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\ | tr -d '[\[\]" ]' | tr '}' '\n'\ | awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

你可能感兴趣的:(运维,docker,运维,容器)