Intern Day13 - DockerFile - 构建自己的Ubuntu镜像
具体步骤
-
首先我们可以看下下图(进入容器后:pwd、vin、ifconfig测试一下),我们会发现在官方的Ubuntu下,很多命令都是没有的,因为官方的Ubuntu是压缩的。这个时候我们可以通过编写自己的Ubuntu DockFile文件去添加我们需要的东西,比如vim、ifconfig等等。
undefined -
编写DockerFile的文件:在home目录下新建一个dockerfile-ubuntu的目录(mkdir dockerfile-ubuntu),然后按照DockerFile的文档格式要求写出如下所示代码:(vim、cat用法)
FROM ubuntu MAINTAINER huangke<huangkenicole@gmail.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.tuna.tsinghua.edu.cn/#' /etc/apt/sources.list; RUN apt-get update --fix-missing && apt-get install -y git vim --fix-missing EXPOSE 80 CMD echo $MYPATH CMD echo "----end----" CMD /bin/bash <img src="https://img2020.cnblogs.com/blog/1738278/202103/1738278-20210302151746766-1938638598.png" width=45%>
-
通过这个文件构建镜像:docker build -f dockerfile-ubuntu -t ubuntu:vim_1 . 需要指定版本号 不指定的话就会默认从dockerhub上下载最新版本,而不是我们dockfile里面的。包括之后对容器进行操作需要指定版本号。
补充知识点
-
删除目录:rm -r 目录名、删除文件:rm -f 文件名
-
docker build -f dockerfile-ubuntu -t myubuntu:0.1 . :通过dockerfile-ubuntu这个文件构建镜像myubuntu,版本0.1
-
docker build -f dockerfile-ubuntu -t ubuntu:vim_1 . 需要指定版本号,不然默认从DockerHub上下载最新版
-
docker images 查看本地所有镜像
-
docker images ubuntu 列出本地镜像中REPOSITORY为ubuntu的镜像列表
-
docker run -it ubuntu
-
sudo apt-get install vim linux安装软件(sudo 命令可以提升普通用户的权限,去执行其他用户才有权限执行的命令。即普通用户不需要root密码也能执行root权限命令的方法,更安全)
-
进入容器 交互模式docker run -it ubuntu,返回命令行模式
-
进入容器 后台模式 docker run -d ubuntu 后台运行容器,并返回容器ID
-
vim dockerfile-ubuntu 编辑dockfile文件
-
cd home错误 cd /home
-
cd dockerfile/和cd dockerfile区别
-
cd dockerfile/ + vim mydockerfile 进入编辑模式
-
vi /etc/profile 修改环境变量
-
exit退出容器模式
-
docker ps -a命令是用来展示所有所有的容器,包括未运行的容器
-
docker ps命令用来展示所有运行中的容器
-
docker ps | grep abc 查找images名字为abc的镜像
-
docker ps -a | grep ubun 查找所有名字开头有ubun的镜像
-
ps -ef | grep 命令查看指定服务是否启动
-
ps -ef | grep [进程ID]可以将进程定位到具体的项目中
-
docker run -d -it ubuntu
-
docker exec -it 容器id /bin/bash 就可以进入容器了,进行你想进行的操作。 进入docker里面,更改或者删掉里面的任何东西后,如果重启docker,都会恢复的。所以如果需要docker里面的某些东西做些永久性的改变,就需要docker commit。
参考视频
https://www.bilibili.com/video/BV1og4y1q7M4?p=28&spm_id_from=pageDriver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2020-03-02 寒假Day38:设计模式 接口