神奇的Docker镜像
# 1.docker镜像
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载
查看已有的镜像
docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
# 2.镜像获取与查找
获取镜像 当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像, 我们可以使用 docker pull 命令来下载它。
docker pull centos:8
- 格式:镜像名称:版本
镜像查找
docker search tomcat
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
# 3.删除镜像
docker rmi hello-world
# 自己制作一个镜像
这里我以一个Vue项目为例,制作一个镜像
# 1.编写dockerfile
在路径/usr/local/software/docker/nginx/下创建Dockerfile文件
#指定基础镜像
FROM nginx
LABEL author=Mr.Fire
#删除基础镜像中的Nginx配置文件替换成自己写的
RUN rm /etc/nginx/conf.d/default.conf
ADD nginx.conf /etc/nginx/conf.d/
#将打包好的vue项目复制到基础镜像中Nginx配置文件的指定路径下
COPY dist/ /usr/share/nginx/html/
2
3
4
5
6
7
8
- nginx.conf:我指定的NGINX配置文件
- dist:项目打包后的文件
# 2.添加nginx配置文件
在路径/usr/local/software/docker/nginx/下创建nginx配置文件
vi nginx.conf
编辑内容如下图:
主要内容:配置端口,宿主机ip(服务器ip),首页
# 3.打包项目
npm run build
上传打包好的dist文件夹到路径/usr/local/software/docker/nginx/
# 4.构建镜像
docker build -t javaessat .
-t :指定要创建的目标镜像名
.:Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
# 5.启动镜像
查看镜像
docker ps
用创建好的镜像启动一个容器
docker run --name front -p 8081:8081 -d javaessay
– name:指定容器名
- p:指定容器和宿主机之间的端口映射
- d:守护进程运行
- javaessay:指定启动 javaessay 镜像
此时如果我们想多启动几个,就非常简单了
docker run --name front2 -p 8082:8081 -d javaessay
再次启动一个,可以看到已经有两个容器在运行,就相当于部署了两个。这当然你还可以基于此镜像启动更多容器,就体现了docker横向扩展的能力。
# 6.访问项目
http://60.205.187.137:8081/ (opens new window)
http://60.205.187.137:8082/ (opens new window)
两个端口均能正常访问
# 7.其他命令
停止容器:
docker stop 容器id
重启:
docker restart 容器id
删除容器:
docker rm -f 1e560fca3906
docker rm -f name
查看日志:
docker logs -f bf08b7f2cd89