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 信息
CI持续集成环境搭建(2)--安装docker

3. 用registry搭建私有镜像仓库

1) 下载registry镜像

CI持续集成环境搭建(2)--安装docker
查看镜下是否pull下来了
docker images

2) 运行registry容器

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

CI持续集成环境搭建(2)--安装docker
参数说明
-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:
CI持续集成环境搭建(2)--安装docker
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:vnum10.243.225.12:5000/devopstesttomcat:vnum 10.243.225.12:5000/devops_test-tomcat:vnum
将镜像devops_test-tomcat:vnum10.243.225.12:5000/devopstesttomcat:vnum标记为 10.243.225.12:5000/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 containername/container_name/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