linux下部署docker,容器里面部署jenkins、mysql
Docker 安装:
1.安装依赖包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.添加docker 下载源地址,设置下载源为阿里云: sudo yum-config-manager --add-repo http:// mirrors.aliyun.com/dock er-ce/linux/centos/docker-ce.repo
可能会报错:Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
vim /etc/yum.repos.d/CentOS-epel.repo
failovermethod=priority 注释
3.更新yum缓存 sudo yum makecache fast
这块可能会报错 :yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
yum makecache fast 是 centos 7 下的命令,并不适用 8
解决方法执行:dnf makecache
4.安装不指定版本docker : sudo yum install docker-ce
5.或者指定版本安装 sudo yum install docker-ce-17.12.1.ce
docker配置
Docker安装在linux系统上实际也是一个应用,需要先启动服务
- 查看docker版本 docker version
- 加入开机启动项 sudo systemctl enable docker #systemctl代表系统设置项
- 查看状态 sudo systemctl status docker
- 启动docker sudo systemctl start docker
- 停掉服务# sudo systemctl stop docker
- 4.卸载docker
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
Docker的常用命令:
1.搜索镜像:docker search tomcat
2.拉取镜像:docker pull tomcat 3.查看本地镜像文件:docker images 4.运行镜像生成容器:docker run -d -p
9999:8080 镜像ID
-d 在后台运行
-p 9999:8080 服务器的端口映射到容器
docker run -d 266d1269bb29 运行容器
如何查看本地正在运行的容器: docker ps
查看容器内部的日志信息。docker logs -f 容器id
进入容器: docker exec -it 容器id /bin/bash exit是退出
启动和停止容器:docker start/stop/restart 容器id
下载mysql容器
比如我想在一台电脑上安装多个mysql服务,只需下载一个mysql镜像,启动多个不同的容器
- docker pull docker #指定版本docker:5.7
- 查看本地镜像 docker images
- 新建容器挂在目录:mkdir -p ~/mysqlvar/mysql/conf ~/mysqlvar/mysql/data
- 执行启动mysql容器启动服务,和服务挂在文件
docker run -p 3309:3306 --name mysql -v ~/mysqlvar/mysql/conf:/etc/mysql/conf.d -v ~/mysqlvar/mysql/logs:/logs -v ~/mysqlvar/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 命令说明:
- name重命名mysql
-p 3309:3306:将容器的3306端口映射到主机的3309端口。
·-V~/mysqlvar/mysql/conf:/etc/mysql/confd:
将主机~mysqlvar/mysql/conf挂载到容器的/etc/mysql/mycnf
-V~/yoyo/mysql/logs:/logs :将主机~/yoyo/mysl目录挂载到容器的/logs。
-V~/yoyo/mysql/data:/var/lib/mysql:将机~/yoyo/mysql/data目录挂载到容器的/var/lib/mysql。
-e MYSQLROOT PASSWORD=123456:初始化root用户的密码
-d挂后台运行
进入mysql容器执行:docker exec -it mysql bash #mysql也可以是容器ID
进入mysql应用,使用root用户操作 cd /var/lib/mysql
mysql -uroot -p 登录用户
开放对外访问登录权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机
下载部署jenkins
下载拉去jenkins容器 docker pull jenkins
新建jenkins用户的工作目录,注意这一步最好目录保持一致用来挂在映射:mkdir /home/jenkins
查看目录归属ID命令 ls -nd /home/jenkins
给ID为1000的用户添加操作权限 :chown -R 1000:1000 /home/jenkins
运行容器
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins
- --privileged=true 让容器有root权限,方便进入容器操作
- -p 9090:8080 jenkins的web访问端口9090
- -v /home/jenkins:/var/jenkins_home 容器/var/jenkins_home路径映射到宿主机/home/jenkins
浏览器输入
http://ip:9090/
访问jenkins首页
访问不通的话,查看防火墙,service iptables status 查看服务器状态
密码地址:/var/jenkins_home/secrets/initialAdminPassword
上面启动容器的时候容器/var/jenkins_home路径映射到宿主机/home/jenkins,在宿主的/home/jenkins/secrets/initialAdminPassword地址可以找到密码
cat /home/jenkins/secrets/initialAdminPassword 复制密码使用
jenkins的使用就看我的另一篇文章。