一丶Docker的安装
这里只介绍CentOS的安装步骤,其他的系统可以根据官方的文档进行。
- 前置条件:CentOS必须是7或以上,可以使用 uname -a查看,其中出现的el7就是CentOS7, 如果是el6那是安装不了Docker的
- 安装yum-utils: sudo yum install -y yum-utils 这是为了更方便的安装docker-ce的源
- 安装docker-ce的yum源: sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker: yum install docker-ce
- 替换默认的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
- 启动docker服务: systemctl start docker
- 测试一下看看是不是装好了: docker run --rm hello-world
- 设置docker开机启动: systemctl enable docker
好了,docker到这里就安装完成了。
二、docker安装mysql
借鉴如下:
https://jingyan.baidu.com/article/046a7b3e9cecfaf9c37fa96b.html
- 直接docker pull mysql:5.7,等待下载安装完成
0Ubuntu docker 安装MySQL
- 然后先创建一个临时的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 命令模式
- 拷贝配置文件,把Docker中的/etc/mysql/my.cnf文件拷贝到Docker的/var/lib/mysql目录,及主机的/usr/local/mysql/目录中
cp /etc/mysql/my.cnf /var/lib/mysql
- 另启一个终端,查看拷贝出来的/usr/local/mysql/my.cnf文件。
如果是完整的mysql配置文件,直接跳到第8步。如果不是,继续向下看
- 这里的my.cnf文件不是完整的mysql配置,而是引用了其他目录下的。我们可以看到这里引用了二个目录,可以在第一个bash终端中ls查看这二个目录
/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/
- 同样把这二个目录拷贝到/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
- 退出bash,Docker中临时用的mysqlTemp会被删除
然后可以查看/usr/local/mysql/目录下有mysql所有的配置文件
- 这里就可以修改配置了。
改完之后,创建正式的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 守护进程模式运行
- 还有另一种办法,就是从docker镜像文件里面复制出配置文件来。
就是用 find / -name my.cnf
全盘搜索
这里已经启动过容器且主机上有一份了,如果没有,只会在/var/lib/docker/aufs/diff目录下存在
- 进入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 <CONTAINER ID>