为什么用docker?因为镜像已经基本配置好环境了,只要下载就可以复用了,同时方便管理,通过docker命令就可以简单地管理各个镜像。当然,也有坏处,就是镜像内可能缺乏一些软件需要自己下载。
操作系统:CentOS 8.0 64位
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用国内下载源:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装
sudo yum install docker-ce
错误解决:
描述:
Error: Problem: package docker-ce-3:19.03.12-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
解决:安装新版的containerd.io软件包
1、下载软件包
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
2、安装
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
sudo systemctl enable docker
sudo systemctl start docker
执行:docker run hello-world 判断服务是否启动成功
在 /etc/docker/daemon.json 中配置镜像源,如(由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 docker-practice/docker-registry-cn-mirror-test 查看。)
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
基本命令
1、下载
docker pull jenkins/jenkins:lts
2、查看已安装的镜像
docker images ls
3、删除镜像
docker images <镜像ID>
查看镜像
1、启动镜像
docker run -d --name jenkins -p 8081:8080 -v /home/jenkins:/home/jenkins jenkins/jenkins:lts
--name:镜像实例名
-p:端口映射。宿主端口:镜像端口,如8081:8080镜像内的8080端口映射到宿主的8081端口,访问时以8081端口访问但镜像内配置依然是8080端口,起到镜像之间配置隔离的作用。
-v:文件夹映射。宿主文件夹:镜像文件夹,可以把宿主的文件夹映射到镜像中,实现文件共享。
2、查看镜像日志
docker logs jenkins
3、查看镜像配置信息
docker inspect [image name/id]
Jenkins有个默认的工作文件夹 /var/jenkins_home,如果启动时没有做该文件夹映射,那么默认会在宿主中生成一个文件夹 /var/lib/docker/volumes/VOLUME ID/_data,VOLUME ID是随机的,如
测试发现:
如果把该文件夹映射到宿主的空文件夹,那么Jenkins将无法启动
如果映射到一个已有的Jenkins工作文件夹,那么新的Jenkins镜像将复用这些旧的数据,如:
在docker中,volume可以用作镜像实例数据的备份。
启动后可以通过查看日志查看登录密码
登录地址为:http://ip:8081/login
对于阿里云服务器的用户,需要把ip改为公网ip,还需要配置安全组,把指定的端口放开,如这里是8081
登录并下载完推荐插件后进到首页
下一篇 Docker+Jenkins搭建Android持续集成环境(二)
参考:
Docker–从入门到实践
https://www.linuxidc.com/Linux/2019-10/160948.htm