CI持续集成环境搭建(2)--docker的安装与配置

本文详细介绍了如何在 CentOS 系统上安装和配置 Docker,包括设置 yum 源、安装 Docker、启动 Docker 服务、搭建私有镜像仓库 registry 以及常用 Docker 命令的操作。在遇到 Docker 启动失败的问题时,文章提供了解决方案,包括检查 daemon.json 文件的正确性和使用阿里源安装新版本 Docker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装docker

https://www.runoob.com/docker/centos-docker-install.html

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

[root@localhost ~]# 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={centosIP}:5000’

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下来的镜像;

测试镜像仓库中所有的镜像

[root@localhost ~]# 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  {centosIP}:5000/tomcat:v1

tomcat:7.0.70-jre7-alpine 这是源镜像,也是刚才pull下来的镜像文件;
{centosIP}:5000/tomcat:v11:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;

c. 上传到镜像服务器

docker push {centosIP}:5000/tomcat:v1

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: v{num} {centosIP}:5000/devops_test-tomcat:vnum将镜像devopstest−tomcat:vnum 将镜像devops_test-tomcat:vnumdevopstesttomcat:vnum标记为 {centosIP}:5000/devops_test-tomcat:v$num 镜像。
docker tag : 标记本地镜像,将其归入某一仓库。

c. docker push {centosIP}: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命令

https://www.runoob.com/docker/docker-hello-world.html

查看启动的容器
docker ps

启动容器(后台模式)
docker run -d ubuntu

启动容器(交互式)
docker run -i -t ubuntu

docker run -p xxx:xxx 镜像名

启动已停止的容器:

a. 查看所有的容器
docker ps -a
b. 启动已停止的容器
docker start $containerid
docker start d9c4e1a4f238

停止容器
docker stop $containerId

重启容器
docker restart $containerid

删除容器
docker rm -f containername/container_name/containername/containerid

进入容器
docker attach $containerid
docker exec -it $containerid /bin/bash (推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。)
or
docker exec -it $containerid /bin/bash
https://blog.youkuaiyun.com/u010397369/article/details/41045251

寻找网络镜像
docker search centos

下载镜像
docker pull jenkins

push本地镜像到镜像仓库
docker push

#查看所有本地镜像
docker images

#删除本地镜像
docker rmi $image_id

Issues:

  1. start docker failed:
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since 六 2019-05-11 16:07:38 CST; 18s ago
    Docs: http://docs.docker.com
    Process: 9857 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
    Main PID: 9857 (code=exited, status=1/FAILURE)
    5月 11 16:07:38 192.168.1.200 systemd[1]: Starting Docker Application Container Engine…
    5月 11 16:07:38 192.168.1.200 dockerd-current[9857]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character ‘â’ looking for beginning of…ct key string
    5月 11 16:07:38 192.168.1.200 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
    5月 11 16:07:38 192.168.1.200 systemd[1]: Failed to start Docker Application Container Engine.
    5月 11 16:07:38 192.168.1.200 systemd[1]: Unit docker.service entered failed state.
    5月 11 16:07:38 192.168.1.200 systemd[1]: docker.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.

https://blog.youkuaiyun.com/KissedBySnow/article/details/90137289
新方法安装新版本:
a. 添加阿里镜像

 sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

b. 查看可以安装的docker版本

yum list docker-ce --showduplicates

c. 安装18.03.1

 sudo yum install docker-ce-18.03.1.ce
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值