Dockerfile及docker简单使用

发布时间 2023-11-18 17:53:47作者: faf4r

Dockerfile个人使用总结

Dockerfile的编写

FROM python      # 从基础镜像开始构建
COPY . /app      # 复制文件到镜像层
WORKDIR /app     # 指定工作目录
EXPOSE 80        # 暴露端口供外部使用
RUN pip install -r requirements.txt  # 构建镜像时的命令,一个RUN构建一层,因此构建时注意用&&来连接多条命令
CMD python news.py   # 容器运行时的命令,多个CMD只会运行最后一个

构建容器

# docker必须在sudo权限下使用
$ docker build -f Dockerfile -t name:tag .  # 注意末尾这个点表示当前目录别忘了
  • -f指定Dockerfile文件,默认文件名就是Dockerfile,可以不写
  • -t指定构建的镜像名和标签,不写tag(即-t name)则默认为name:latest,tag是版本,name是镜像名
  • 后面的.代表当前目录,意思是把当前目录上传到docker服务去构建。

启动容器

$ docker run -d --restart=always -p 80:80 -v ~/config:/app/config --name container image-name
  • -d 表示后台运行
  • --restart=always 表示自动重启(开机、出错容器退出等情况)
  • -p 是将本地端口映射到内部端口,这样相当于把本地端口和内部端口连通了
  • -v 是将本地文件(夹)(必须为绝对路径)映射到容器中,实现持久化存储
  • --name 是容器名(run就是对镜像实例化创建一个容器,--name就是用来管理容器的名字)
  • image-name 镜像的名字要放到最后

PS:如果要交互式与容器操作,需要添加使用-it参数

常用docker命令

注意镜像和容器是两个东西,类似类和对象的关系

$ docker images			# 列出所有镜像
$ docker ps				# 查看正在运行的容器
$ docker ps -a			# 查看所有的容器(容器stop后依然存在,并没有删除)

$ docker run ...		# 运行容器,见上
$ docker stop container	# 停止容器,可以使用容器名或者id前3位,可用ps查看
$ docker rm container	# 删除容器,可以使用容器名或者id前3位,可用ps查看

$ docker rmi image-id	# 删除镜像,注意要删除完所有它的容器后才能删除镜像,可用images查看它的id前三位
$ docker system prune	# 清理缓存,删除无用数据(包括已停止的容器,未使用的镜像等)

$ docker inspect container	# 查看容器的详细信息(可以来看看mount挂载对没对)
$ docker logs container	# 查看容器输出,可以使用容器名或者id前3位