📂docker
🔖docker
2023-11-18 17:47阅读: 32评论: 0推荐: 0

Dockerfile及docker简单使用

Dockerfile个人使用总结

Dockerfile的编写

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

构建容器

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

启动容器

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

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

常用docker命令

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

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
$ 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位

本文作者:faf4r

本文链接:https://www.cnblogs.com/faf4r/p/17840819.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   faf4r  阅读(32)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起