1.离线安装docker

首先安装docker服务,因为是离线主机所有需要手动安装:

最开始安装如下rpm包,但是依赖忽略,导致无法启动docker service 。

安装包下载:https://download.csdn.net/download/mar_ljh/10627546

这里推荐使用yum来安装:

先还是要下载上面链接提供的 rpm包集合。

然后在:/etc/yum.repos.d修改yum的源:增加配置文件:CentOS-Vault.repo,已经存在就直接替换:

file路径要和解压路径保持一致

# placeholder for now

# #

# CentOS Vault contains rpms from older releases in the CentOS-7

# tree.

#

# At this point in 7.0.1406, we have no older release

[c5-media]

name=CentOS-$releasever - Media

baseurl=file:///opt/soft/

# file:///media/cdrom/

# file:///media/cdrecorder/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

yum clean all

yum repolist查看是否生效

生效后:

执行:yum install docker 自动安装依赖。

安装完毕,启动docker:systemctl start docker.service

(这里如果启动报错,修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled,需要重启机器。

具体说明查看本文中:4.启动mysql)

开启启动:systemctl enable docker.service

执行验证是否安装成功:

[root@host-centos7 ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-58.git87f2fab.el7.centos.x86_64
Go version: go1.9.4
Git commit: 87f2fab/1.13.1
Built: Fri May 11 14:30:13 2018
OS/Arch: linux/amd64

Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-58.git87f2fab.el7.centos.x86_64
Go version: go1.9.4
Git commit: 87f2fab/1.13.1
Built: Fri May 11 14:30:13 2018
OS/Arch: linux/amd64
Experimental: false

2.安装docker-compose

官网参考:https://docs.docker.com/compose/install/#install-compose

直接在github中https://github.com/docker/compose/releases下载一个dock-compose的releases

或者了解版本,直接用下载:

     sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

然后增加执行权限:sudo chmod +x /usr/local/bin/docker-compose

测试是否成功:

$ docker-compose --version

docker-compose version 1.22.0, build 1719ceb

 

3.增加docker-compose.yml以及Makefile:

Makefile文件:

build:
docker-compose -f docker-compose-max.yml build api
push:
start:
docker-compose up -d
docker ps
restart:
docker-compose stop
docker-compose rm -f
docker-compose up -d
docker ps
logs:
docker-compose logs -f
stop:
docker-compose stop
docker-compose rm -f
clean:
rm -f ${OUTPUT}

docker-compose.yml  关于镜像上dockerhub下载mysql官方即可,配置对应修改

version: '2'
services:
  mysql:
  image: mysql
  environment:
    - TZ=Asia/Shanghai 
    - MYSQL_ROOT_PASSWORD=XXXXX
    - MYSQL_DATABASE=initdb_
  volumes:
    - /var/lib/mysql/:/var/lib/mysql/
    - /tmp/:/tmp/
  ports:
    - 3306:3306
  restart: always

 

4.启动(这里启动极有可能报错,看你是不是机器已经有运维人员使用过,报错看第5点)

单独启动服务(这里运行该命令)

      docker-compose up -d mysql

或者:make restart 一键启动

查看日志:

[root@host-centos7 deploy]# docker-compose logs -f mysql
Attaching to deploy_mysql_1
mysql_1 | chown: cannot read directory '/var/lib/mysql/': Permission denied
mysql_1 | chown: cannot read directory '/var/lib/mysql/': Permission denied
mysql_1 | chown: cannot read directory '/var/lib/mysql/': Permission denied
mysql_1 | chown: cannot read directory '/var/lib/mysql/': Permission denied

报错,没有权限。

说明:

CentOS7中Docker文件挂载,容器中没有执行权限

//挂载外部数据卷时,无法启动容器,

该原因为centOs7默认开启selinux安全模块,需要临时关闭该安全模块,或者添加目录到白名单

解决办法:(直接看第5)

临时关闭selinux:su -c "setenforce 0"

重新开启selinux:su -c "setenforce 1"

添加selinux规则,将要挂载的目录添加到白名单:

示例:chcon -Rt svirt_sandbox_file_t /home/docs

解决办法:这里主机是内网,直接关闭了关闭SELinux

 

5.关闭SELinux

 先来,查看SELinux状态,下面两种查看方法:

a:/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

b:getenforce ##也可以用这个命令检查

再来,关闭SELinux,关闭分两种,一种临时,一种永久,推挤直接永久吧:

1、临时关闭:(不用重启机器)

setenforce 0 ##设置SELinux 成为permissive模式

##setenforce 1 设置SELinux 成为enforcing模式

2、持久关闭:(修改配置文件需要重启机器)

vi /etc/selinux/config 

将SELINUX=enforcing改为SELINUX=disabled

reboot重启机器即可

6.重启mysql:

docker-compose stop mysql
docker-compose rm -f mysql
docker-compose up -d mysql
docker-compose logs -f mysql

日志:启动成功

。。。。
mysql_1 | 2018-08-26 15:10:08 1 [Note] Shutting down plugin 'sha256_password'
mysql_1 | 2018-08-26 15:10:08 1 [Note] Shutting down plugin 'mysql_old_password'
mysql_1 | 2018-08-26 15:10:08 1 [Note] Shutting down plugin 'mysql_native_password'
mysql_1 | 2018-08-26 15:10:08 1 [Note] Shutting down plugin 'binlog'
mysql_1 | 2018-08-26 15:10:08 1 [Note] mysqld: Shutdown complete

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐