这是我参与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