前端 docker + gitlab CI 的持续集成(二)

本文介绍了Docker的基础安装及使用流程,包括下载并启动nginx容器的详细步骤。此外,还讲解了如何通过编写Dockerfile来构建自定义镜像,并以Node.js结合koa的项目为例进行演示。

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

关于docker的基本概念,请查看docker + Gitlab CI 的持续集成(一)

一、安装docker

docker 安装教程很多, git地址 搜download有很多方式下载,这里就不赘述了,同样可以使用免安装的包 安装好以后检查版本

docker version
复制代码

打印类似以下信息,恭喜你,千里之行已经开始了第一步

[root@VM_0_12_centos ~]# docker version
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Fri May  5 15:36:11 2017
 OS/Arch:      linux/amd64
复制代码

二、启动第一个容器

1、查找需要的image(以nginx为例)

 docker search nginx
复制代码

docker 市场上会有很多相关的image,没有特殊需求的话,使用官方的即可

[root@VM_0_12_centos ~]#  docker search nginx
NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                                  Official build of Nginx.                        9563      [OK]       
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1400                 [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   611                  [OK]
jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   405                  [OK]
kong                                                   Open-source Microservice & API Management ...   224       [OK]       
webdevops/php-nginx                                    Nginx with PHP-FPM                              113                  [OK]
kitematic/hello-world-nginx                            A light-weight nginx container that demons...   108                  
复制代码

2、下载iamge

docker pull nginx
复制代码

nginx可以指定版本号,写法为

docker pull nginx:版本号
复制代码

不指定的话默认为latest最新版本

3、查看下载好的image

docker images
复制代码
[root@VM_0_12_centos ~]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
nginx                         latest              c82521676580        6 weeks ago         109MB
复制代码

4、启动容器

docker run -d -p 80:80 --name nginx -v $PWD/dist/:/usr/share/nginx/html nginx
复制代码
  • docker run 创建一个容器,里面运行一个镜像
  • -d 容器能运行在后台,即守护进程
  • -p 将容器对外的端口与宿主机的端口做映射 此处访问宿主机的80端口 其实就是访问容器的80端口
  • —name 容器的名字,不写会自动生成随机的名字
  • -v 可以理解为容器路径的映射,冒号前的宿主机的路径、冒号后的为容器内的路径,最终访问的是容器内/usr/share/nginx/html下的内容,启动容器时会自动从宿主机路径下同步到容器内
  • nginx 是 pull 好的image镜像

5、查看启动的容器列表

docker ps
复制代码
[root@VM_0_12_centos ~]# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                      NAMES
6d94ee9b43d3        nginx                         "nginx -g 'daemon ..."   2 weeks ago         Up 2 weeks          0.0.0.0:80->80/tcp         nginx
复制代码

此时访问服务器 ip 已经可以访问了,只不过nginx的根目录下没有文件,会提示nginx已经 ready

以上讲了直接使用仓库提供的镜像,那么怎么制作自己的image呢?

三、制作镜像

我们启动一个node服务就需要制作,因为是基于node的image的 1、在需要制作image的项目根目录创建Dockerfile文件,这里我们以node+koa的service项目为例 Dockerfile写入内容如下

 FROM node:latest
 RUN mkdir -p /home/Service
 COPY . /home/Service
 WORKDIR /home/Service
 EXPOSE 8000
 RUN npm install
 CMD ["npm","start"]
复制代码
  • FROM 即基础镜像
  • RUN 执行该命令
  • COPY 复制当前的内容到 文件夹
  • WOEKDIR docker的工作目录
  • EXPOSE 对外端口
  • CMD 执行脚本

2、在Dockerfile文件所在目录执行build命令

docker build -t testImage .
复制代码

build 完成即可用命令查看image

docker images
复制代码

启动一下看看

docker run -d -p 5000:8000 --name testimage testimage
复制代码

大家还可以关注我的博客无声的博客

转载于:https://juejin.im/post/5b9f79c15188255c980bc937

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值