开发必备技术--docker(一)

时间:2022-12-19 18:55:57

前言

docker是我们开发过程中,进行项目环境部署,开发,上线的时候经常使用到的一个实用工具。不管是什么项目也好,我们肯定是必不可少的。尤其是现在和卷王比拼的时代,Java的开发标准都上SpringCloud去了,都上微服务了,那么docker必然是需要掌握的。
OK,废话不多说,咱们开始了,这个也是好久之前压库存的玩意儿了(每次我是来清理库存的,这几天WhiteHole得快点推进一下了,先做好,其他的后面再说)。

OK,我们先从安装开始好吧:
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

Docker CE 分为 stable testnightly 三个更新频道。

官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,而且我们大部分选择的服务器都是CentOS ,所以我们这边的指令都是按照CentOS来的。

旧版本卸载

OK,我们先来卸载一下旧版本,如果你的PC上面有的话,你可以选择卸载一下,不然没必要:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装

先安装一下工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

yum install -y docker-ce

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。

启动docker

启动docker前,先关一下防火墙,或者开放一下对应需要使用的端口。我们这边先直接关一下

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

然后输入命令,可以查看docker版本:

docker -v

如果查看成功的话,那么就说明正常了。这里在推荐一下finalShell作为Shell工具。

DockerCompose

这个东西呢,就是一个可以一次性帮助我们创建多个docker镜像的玩意。可以编写脚本的玩意,当然编写一个shell脚本其实也可以的。
用这个安装即可

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

然后改一下文件权限:

chmod +x /usr/local/bin/docker-compose

当然还有一个命令补齐的好东西:

curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

镜像仓库搭建

这个的话自己看着办,目前我们应该是用不上。但是还是说一下吧。

*面版本

Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,不过没有图形化界面。

docker run -d \
    --restart=always \
    --name registry	\
    -p 6000:6000 \
    -v registry-data:/var/lib/registry \
    registry

命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。

访问http://yourhost:6000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像

有界面版本

OK,那么我们再来一下这个有界面的怎么玩

我们可以直接使用docker-compose来玩,那么就用这个

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=WhiteHole
      - REGISTRY_URL=http://registry:6000
    depends_on:
      - registry

当然直接使用docker其实也可以。但是docker-compose不能白装是吧。

之后的话我们配置一下信任地址

# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker