CI持续集成环境搭建(2)--安装docker
1. 安装docker
1) 设置yum源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install epel-release
2) 安装docker
[[email protected] ~]# yum -y install docker
3) 修改docker配置
vi /etc/sysconfig/docker
#OPTIONS=’–selinux-enabled --log-driver=journald --signature-verification=false’
#if [ -z “${DOCKER_CERT_PATH}” ]; then
#DOCKER_CERT_PATH=/etc/docker
#fi
OPTIONS=’–insecure-registry=10.243.225.12:5000’
note:10.243.225.12 是虚拟机IP
2. 启动docker
systemctl start docker //启动docker
systemctl enable docker // docker加入开机启动
启动后,可以用“docker version” 查看docker 信息
3. 用registry搭建私有镜像仓库
1) 下载registry镜像
查看镜下是否pull下来了
docker images
2) 运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
测试镜像仓库中所有的镜像
[[email protected] ~]# curl http://127.0.0.1:5000/v2/_catalog
{“repositories”:[]}
现在是空的,因为才刚运行,里面没有任何镜像内容。
3) 修改镜像源
vim /etc/docker/daemon.json
{
“registry-mirrors”: [ “https://registry.docker-cn.com”]
}
重启docker:
systemctl restart docker
4)下载tomcat镜像
docker pull tomcat:7.0.70-jre7-alpine
a. 查看tomcat:
b. 为tomcat镜像打tag
docker tag tomcat:7.0.70-jre7-alpine 10.243.225.12:5000/tomcat:v1
tomcat:7.0.70-jre7-alpine 这是源镜像,也是刚才pull下来的镜像文件;
10.243.225.12:5000/tomcat:v11:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;
c. 上传到镜像服务器
docker push 10.243.225.12:5000/tomcat:v1
The push refers to a repository [10.243.225.12:5000/devops_test-tomcat]
d82a2600d589: Pushed
[9Bv1: digest: sha256:c660bc39fda157a2c474f2b77dc1350d10c29e6fd00c456dfbbc82d06fdd702b size: 2205
0ae0036003571d3cb30ba5de7cdfe73e315a428b5786ac35c5529076082ca35a
4. 一些docker相关操作详解(docker build, docker tag, docker push, docker run)
a. docker build -t devops_test-tomcat:v$num .
docker build 命令用于使用 Dockerfile 创建镜像, 使用当前目录的dockerfile创建镜像。
–tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
b. docker tag devops_test-tomcat:vnum
将镜像devops_test-tomcat:vnum 镜像。
docker tag : 标记本地镜像,将其归入某一仓库。
c. docker push 10.243.225.12:5000/devops_test-tomcat:v$num
docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
d. docker run -d -p 8080:8080 devops_test-tomcat:v$num
docker run :创建一个新的容器并运行一个命令
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
e. 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -it nginx:latest /bin/bash
5. 常用的Docker命令
查看启动的容器
Docker ps
启动容器
docker run -p xxx:xxx 镜像名
docker start $containerid
docker start d9c4e1a4f238
删除容器
docker rm -f containerid
进入容器
docker attach $containerid
docker exec -it $containerid /bin/bash
or
docker exec -it $containerid sh
https://blog.****.net/u010397369/article/details/41045251
寻找网络镜像
docker search centos
下载镜像
docker pull jenkins
push本地镜像到镜像仓库
docker push
#查看所有本地镜像
docker images
#删除本地镜像
docker rmi $image_id