前端需要知道的CI / CD知识不完全指北(三)

473 阅读2分钟

这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战

前端需要知道的CI / CD知识不完全指北(三)

Docker

Docker 是一种虚拟机技术,比传统虚拟机(如vmware,virtualbox)要更加简单、轻量

  • 启动快
  • 资源占用少
  • 体积小

安装

linux centos7 安装docker

# 安装docker依赖
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum-config-manager --enable docker-ce-nightly
sudo yum-config-manager --enable docker-ce-test
# OR disable
sudo yum-config-manager --disable docker-ce-nightly


# 安装docker引擎
sudo yum -y install docker-ce docker-ce-cli containerd.io

# 启动docker
sudo systemctl start docker

# 检查是否安装成功
$ docker version

配置docker腾讯云镜像加速

vi /etc/docker/daemon.json 
{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

# 检查加速器是否生效
$ docker info
Registry Mirrors: https://mirror.ccs.tencentyun.com  # 表示配置成功

官方仓库

docker的所有image都可以在hub.docker.com/ 搜索并下载,还可以自定义 image上传到这个仓库

Docker 常用命令

image 镜像

# 下载镜像
$ docker pull <images-name>:<tag>
# 查看所有镜像 
$ docker images
# 删除镜像
$ docker rmi <image-id>
# 上传镜像, 首先要注册账号 http://hub.docker.com
$ docker push <username>/<repository>:<tag>
# 如果 docker image 出现 repository 为 node 的情况 使用 prune 删除
$ docker image prune

Container 容器

# 启动容器
$ docker run -p xxxx:xxxx -v=hostPath:containerPath -d --name <container-name> <image-name>
# -p 端口映射
# -v 数据卷,文件映射
# -d 后台运行
# --name 定义容器名称

# 查看所有容器
$ docker ps
$ docker ps -a # 显示隐藏的容器
# 停止容器
$ docker stop <container-id>
# 删除容器
$ docker rm <container-id> # 加 -f 强制删除
# 查看容器信息, 如 IP地址
$ docker inspect <container-id>
# 查看容器日志
$ docker logs <container-id>
# 进入容器控制台
$ docker exec -it <container-id> /bin/sh
$ docker attach <container-id>

以 Nginx 为例

$ docker run -p 81:80 -d --name nginx1 nginx
$ docker ps
# 访问 localhost:81 并查看 log
$ docker exec -it <container-id> /bin/sh
$ cd /usr/share/nginx/html
$ echo hello docker world > index.html
# 重新访问 localhost:81 强制刷新
$ docker stop <container-id>
$ docker rm <container-id>

-v数据卷

# 1.新建 /Users/wfp/html/index.html 自定义html内容
# 2.运行
docker run -p 81:80 -v=/Users/wfp/html:/usr/share/nginx/html -d --name nginx1 nginx
# 3.访问 重新访问localhost:81

拓展

执行yum install的时候出现:

Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 2847.
Another app is currently holding the yum lock; waiting for it to exit...

yum在锁定状态中。 已经有一个yum进程在运行了,可以使用kill干掉它:

kill -s 9 2847

如果不可以用kill杀死,可以强制停掉yum

rm -f /var/run/yum.pid