搭建docker
1、brew install docker-machine
2、安装virtualbox 5.1.26
https://www.virtualbox.org/wiki/Downloads
3、创建虚拟机 dev
docker-machine create –driver virtualbox dev
4、运行虚拟机,并设置环境变量(注意,如果是在本地开发机,每次开关机器,都需要重新start)
emambp:~ ema$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/ema/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval $(docker-machine env dev)
emambp:~ ema$ eval $(docker-machine env dev)
查看虚拟机运行状态,
emambp:~ ema$ docker-machine ls dev
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
dev * virtualbox Running tcp://192.168.99.100:2376 v17.06.0-ce
总结:创建以virtualbox驱动 启动的虚拟机。并且建立好和远端docker deamon的连接/ ssh验证关系。
5、安装docker client
emambp:~ ema$ brew install docker
jenkins 部署 master
1,search jenkins镜像
emambp:~ ema$ docker search jenkins
2,pull 镜像
emambp:~ ema$ docker pull jenkins
3,运行单实例jenkins,不想使用默认配置的话,可配置jenkins启动参数,此处暂且先不配置
#docker run -it -d --restart always --name msfjenkins -p 8080:8080 -p 50000:50000 -v ~/jenkins_home:/var/jenkins_home jenkins
docker run --name myjenkins -d -p 9001:8080 -v ~/jenkins:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai jenkins
命令解析:
-v, 格式 冒号分隔符 前为宿主机信息(本案例 ~/jenkins),后为容器内目录信息(本案例 /var/jenkins_home)
-p ,将容器内8080端口 映射到宿主机9001端口,所以宿主机机访问jenkins需要使用9001端口
容器内jenkins服务,是监听的8080端口。–个人理解 待comment
可登录到jenkins的容器中,查看相关目录信息:
emambp:~ ema$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f25e5655575 jenkins "/bin/tini -- /usr..." 2 days ago Up 2 days 50000/tcp, 0.0.0.0:9001->8080/tcp myjenkins
emambp:~ ema$ docker exec -it 2f25e5655575 bash
jenkins@2f25e5655575:/$ ls
bin boot dev docker-java-home etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
jenkins@2f25e5655575:/$ cd /var/jenkins_home/
4,开发机上查看docker ps,如果正常运行
emambp:~ ema$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f25e5655575 jenkins "/bin/tini -- /usr..." 2 days ago Up 2 days 50000/tcp, 0.0.0.0:9001->8080/tcp myjenkins
5,然后查看jenkins部署的宿主机(此案例中宿主机为dev 虚拟机),
【注意】这个时候需要查看该虚拟机的ip地址,因为jenkins是部署在这个虚拟机上的 ,所以访问jenkins应该是该虚拟机的ip:9001
查看虚拟机的ip
emambp:~ ema$ docker-machine ip dev
192.168.99.100
登录virtualbox验证,确实是这样的:
6,打开chrome浏览器,可以直接访问
http://192.168.99.100:9001
出现如下页面:
到此,jenkins docker化部署,success
【注意】这192.168.99.100就是你的宿主机的IP地址,你的web服务就监听在上面。当然,这个IP是在你本地的机器上,并不能被外部访问。如果你希望从外部访问你的机器,你需要在Virtualbox上设置端口转发(port forwarding).