Docker安装mysql、jenkins、redis、nginx大汇总

一丶Docker的安装

这里只介绍CentOS的安装步骤,其他的系统可以根据官方的文档进行。

  1. 前置条件:CentOS必须是7或以上,可以使用 uname -a查看,其中出现的el7就是CentOS7, 如果是el6那是安装不了Docker的
  2. 安装yum-utils: sudo yum install -y yum-utils 这是为了更方便的安装docker-ce的源
  3. 安装docker-ce的yum源: sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装docker: yum install docker-ce
  5. 替换默认的docker镜像为网易镜像,国内访问docker官方的镜像服务器比较慢, 可以通过修改daemon配置文件/etc/docker/daemon.json来使用国内镜像加速:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://hub.c.163.com/"]

}

EOF

sudo systemctl daemon-reload #如果已经启动了docker,需要重新加载配置,重启服务

sudo systemctl restart docker

  1. 启动docker服务: systemctl start docker
  2. 测试一下看看是不是装好了: docker run --rm hello-world
  3. 设置docker开机启动: systemctl enable docker

好了,docker到这里就安装完成了。

二、docker安装mysql

借鉴如下:

https://jingyan.baidu.com/article/046a7b3e9cecfaf9c37fa96b.html

 

  1. 直接docker pull mysql:5.7,等待下载安装完成

0Ubuntu docker 安装MySQL

 

  1. 然后先创建一个临时的mysql,以便复制出my.cnf等数据

docker run --rm --name mysqlTemp -it -v /data/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7 /bin/bash

cp /etc/mysql/my.cnf /var/lib/mysql

-- rm 退出后就删除该容器

-v /usr/local/mysql/:/var/lib/mysql  装主机目录/usr/local/mysql/映射Docker中的/var/lib/mysql目录

-it 交互模式

/bin/bash 进入 bash 命令模式

 

  1. 拷贝配置文件,把Docker中的/etc/mysql/my.cnf文件拷贝到Docker的/var/lib/mysql目录,及主机的/usr/local/mysql/目录中

cp /etc/mysql/my.cnf /var/lib/mysql

 

  1. 另启一个终端,查看拷贝出来的/usr/local/mysql/my.cnf文件。

如果是完整的mysql配置文件,直接跳到第8步。如果不是,继续向下看

 

  1. 这里的my.cnf文件不是完整的mysql配置,而是引用了其他目录下的。我们可以看到这里引用了二个目录,可以在第一个bash终端中ls查看这二个目录

/etc/mysql/conf.d/

/etc/mysql/mysql.conf.d/

 

  1. 同样把这二个目录拷贝到/var/lib/mysql下

cp -R /etc/mysql/conf.d/ /var/lib/mysql/conf.d

cp -R /etc/mysql/mysql.conf.d/ /var/lib/mysql/mysql.conf.d

 

  1. 退出bash,Docker中临时用的mysqlTemp会被删除

然后可以查看/usr/local/mysql/目录下有mysql所有的配置文件

 

  1. 这里就可以修改配置了。

改完之后,创建正式的mysql容器

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /data/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/conf.d:/etc/mysql/conf.d -v /usr/local/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d -d mysql:5.7

如果my.cnf 是完整的配置,这里不需要映射conf.d和mysql.conf.d这二个目录

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf  -d mysql:5.7

--name 容器名称

-p 端口映射

-v 配置文件映射:将 宿主机上修改的自定义配置文件,映射到 容器中

-e MYSQL_ROOT_PASSWORD   设置root密码

-d 守护进程模式运行

 

  1. 还有另一种办法,就是从docker镜像文件里面复制出配置文件来。

就是用 find / -name my.cnf 

全盘搜索

这里已经启动过容器且主机上有一份了,如果没有,只会在/var/lib/docker/aufs/diff目录下存在

 

  1. 进入diff下mysql所在的目录

cd /var/lib/docker/aufs/diff/bf865af347ec8b51bd8e949436b8dcde762de61c6e649c6a779fd79f13493e82/etc/mysql/

可以看到同样的配置文件,其中my.cnf是红色的,这是一个连接文件,找到原文件在alternatives/my.cnf下。把这几个配置复制出来,参考第8步,也可以配置mysql

注意:docker 启动mysql 后可能会出现容器与主机时区不一致的情况,处理方式是如下:

  1、主机中执行:docker cp /etc/localtime:mysql /etc/localtime 重启容器

  2、创建容器是添加命令:-e TZ=Asia/Shanghai

 

 

三、docker 安装nginx

mkdir -p /data/nginx/{conf.d,log}

 

在conf.d 目录下创建 default.conf 文件并加入如下内容:

 

server {

listen 80;

server_name localhost;

 

#charset koi8-r;

#access_log /var/log/nginx/host.access.log main;

 

location / {

root /usr/share/nginx/html;

index index.html index.htm;

}

 

#error_page 404 /404.html;

 

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

 

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass http://127.0.0.1;

#}

 

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

# root html;

# fastcgi_pass 127.0.0.1:9000;

# fastcgi_index index.php;

# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

# include fastcgi_params;

#}

 

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

#location ~ /\.ht {

# deny all;

#}

}

安装镜像

docker pull nginx

(使用外部端口)

docker run --restart=always --name nginx -d --net=host -v /data/nginx/conf.d:/etc/nginx/conf.d -v /data/nginx/log:/var/log/nginx -v /home/BM:/home/BM nginx

四、docker 安装 jenkins

(1)拉取镜像docker pull jenkins

(2)在启动Jenkins时,需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下

mkdir /var/jenkins_home

(3)修改目录权限(很重要!)

chown -R 1000 /var/jenkins_home

 

docker run -d --restart=always --name jenkins --privileged=true -p 6020:8080 -p 50000:50000  -v /var/jenkins_home:/var/jenkins_home jenkins

 

docker run -d --name myjenkins -p 49001:8080 -v /home/jenkins_home:/home/jenkins_home jenkins

 

 

五、docker安装redis

 

 

(1)docker pull redis

(2)启动docker run --restart=always -it --name redis -d -p 6379:6379 redis redis-server --requirepass 123456

 

六、docker容器自启动

在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:

docker run --restart=always

如果已经启动了则可以使用如下命令:

docker update --restart=always

 

你可能感兴趣的:(Docker)