1.docker
1.1 docker核心概念
docker主机(Host):安装了docker程序的机器。docker直接安装再操作系统上。
docker客户端(Client):连接docker主机进行操作。
docker仓库(Registry):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。
1.2 安装docker (ubnutu 18)
这种安装方式首先要保证Ubuntu服务器能够访问Docker仓库地址:https://download.docker.com/linux/ubuntu,如果能够访问,按照下面的操作步骤进行安装。
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
在/etc/apt/sources.list.d/docker.list文件中添加下面内容
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
添加秘钥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
安装docker-ce
$ sudo apt install docker-ce
查看是否安装成功:
$ docker --version
Docker version 18.03.0-ce, build 0520e24
1.3 docker常用操作
1.3.1 docker 启动 停止 重启操作
启动 systemctl start docker
重启docker systemctl restart docker
关闭docker systemctl stop docker
1.3.2 docker镜像操作
操作 | 命令 | 说明 |
检索 |
docker serach 关键字 eg:docker search redis |
我们经常去docker上检索镜像详细信息,如镜像的TAG. |
拉取 |
docker pull 镜像名:tag |
:tag是可选的,tag表示标签,多为软件的版本,默认是latest |
列表 |
docker images |
查看所有本的镜像 |
删除 |
docker rmi image-id |
删除制定的本地镜像 |
docker镜像仓库:https://hub.docker.com/
1.3.3 docker容器操作
操作 | 命令 | 说明 |
运行 |
docker run -name container -name -d image-name eg: docker run -name myredis -d redis |
-name: 自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 |
docker ps(查看运行中的容器) |
加上-a 可以查看所有容器 |
停止 |
docker stop container-name/container-id |
|
启动 |
docker start container-name/container-id |
|
删除 |
docker rm container-id |
|
端口映射 |
-p 6379:6379 eg:docker run -d -p 6379:6379 -name myredis docker.io/redis |
-p: 主机端口(映射到)容器内部的端口 |
容器日志 |
docker logs container-name/container-id |
|
更多命令 |
https://docs.docker.com/engine/reference/commandline/docker/ |
|
1.4 docker安装应用
1.4.1 安装msql
查看mysql > docker search mysql
下载mysql > docker pull mysql
查看已经下载的镜像 > docker images
启动mysql加上端口映射
>docker run -p 3306:3306 --name brian_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
停止myswl > docker stop contioner-id
mysql的一些高级操作:https://hub.docker.com/_/mysql/
1.4.2安装oracle
启动
docker run --name brian_oracle -d -p 1522:22 -p 1521:1521 ee3351d51185
docker run brian_oracle -d
1.4.3 gitlab安装
docker安装gitlab-----
docker run --name brian_gitlab -d -p 10010:80 -p 2222:22 -p 8433:433 991cd608c116
angular 与gitlab实现 ci/cd-----
https://juejin.im/post/5bc3e8e66fb9a05ce37b1fd8
1.4.3.1 runner 安装
1.https://blog.csdn.net/frankcheng5143/article/details/79838414
2.runner 负责编译 到指定路径下,然后用nginx跑前端代码
更改nginx默认端口,ubuntu更改nginx端口号
==>https://blog.csdn.net/w20101310/article/details/78835668
3.runner 权限不足的问题-----
gitlab runner默认运行时user mode,想提升权限,只需要运行gitlab runner 的时候使用sudo即可。
==> sudo gitlab-runner stop /start
1.4.3.2 docker容器中 gitlab 修改HTTP连接方式中的IP和端口
https://blog.csdn.net/xiaoxiangzi520/article/details/81145180
我这边是配置的域名
1.4.4 构建自己的镜像
1、将jar包上传linux服务器/usr/local/dockerapp目录,在jar包所在目录创建名为Dockerfile的文件
2、在Dockerfile中添加以下内容
###指定java8环境镜像
FROM java:8
###复制文件到容器app-springboot
ADD docker-jrx-0.0.1.war /jrxappserver-0.0.1-SNAPSHOT.war
###声明启动端口号
EXPOSE 8080
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/jrxappserver-0.0.1-SNAPSHOT.war"]
1.4.5 使用docker build命令构建镜像
docker build -t docker-jrx-0.0.1 .
# 格式: docker build -t 镜像名称:标签 Dockerfile的相对位置
docker run -d -p 8080:8080 docker-jrx-0.0.1 .
1.4.6 进入docker容器
docker exec -ti 容器ID /bin/bash
1.4.7 push镜像到dockerhub
push前需要打tag标签,我中hub仓库为dockerszhuangl1991
docker tag imageid dockerszhuangl1991/serviceName:0.0.1。
1.4.8 docker-compose-file ,env-file
https://docs.docker.com/compose/compose-file/
https://docs.docker.com/compose/env-file/
1.4.9 .jenkins push代码后构建
1.配置push代码后构建 (主要是配置WebHooks 设置)
https://blog.csdn.net/guanshulixiao/article/details/76174731
2.build 前端angular (依赖node环境) 配置node环境
https://www.jianshu.com/p/0a865a321d78
3. build 后端springboot springclod
使用maven打包项目,项目配置找到构建,下拉找到调用顶层Maven目标,目标这个选项就是要打包的指令 (test,package,install....)
4. build docker 镜像
5. 自动push 镜像到 docker hub
1.4.10 腾讯云 centos7 安装docker
安装
1.使用root权限登陆系统。
2.更新系统包到最新。
# yum -y update
3.执行Docker安装脚本
# curl -sSL https://get.docker.com/ | sh
# yum install -y docker-selinux
这个脚本会添加docker.repo 配置并安装Docker。
4.启动Docker
# systemctl start docker.service
1.4.11 redis主备搭建
主机的 redis 命令行:SLAVEOF 主机IP 主机port
1.4.12 zk集群搭建
https://www.jianshu.com/p/98bb69256cc3
1.4.13 elk - logstashh同步MySQL数据
1. docker cp 拷贝 ***.conf 到/usr/local/sql/aaa.conf 文件夹下
2. vim 到 config/pipelines.yml 添加
- pipeline.id: table1
path.config: "/usr/local/sql/aaa.conf"
3. 重启ELK项目 logstash每一分钟同步一次