架构和底层技术




Image

每一句对应一层,一共五句,就是五层

自己创建一个镜像
vim hello.c#include<stdio.h>int main(){printf("hello world!\n");}# 编译c,需要依赖yum install -y gccyum install -y glibc-static# 编译为可执行文件gcc -static hello.c -o hello# 执行看效果./hello# 编写dockerfilevim Dockerfile# 内容From scratchADD hello /CMD ["/hello"]# 构建镜像docker build -t sixmillions/hello .# 查看进行docker image ls或者docker imagesls -lh# 查看镜像构建历史docker history 镜像iddocker run sixmillions/hello结果会打印出hello world!
容器

查看
# 查看运行的容器
docker container ls
或者docker ps
# 查看所有容器
docker container ls -a
或者
docker ps -a
交互式运行容器
docker run -it 镜像
# 例如:
docker run -it debian
# 查看所有容器的id
docker container ls -aq

删掉所有的容器
docker rm $(docker container ls -aq)
删除所有离线的容器
docker container ls -f "status=exited"
docker container ls -f "status=exited" -q
docker rm $(docker container ls -f "status=exited" -q)

构建新的镜像
# 根据容器构建
docker container commit
简写成
docker commit
# 直接构建
docker image build
简写成
docker build
通过容器构建镜像(不推荐)
我们给centos镜像生成的容器中安装vim
我们把刚才这个容器打包成镜像
docker commit 容器 新镜像名字:[tag]
# 不写tag默认是latest

查看centos和我们打包的centos-vim有什么不一样

发现新构建的多出来一层.
但是不推荐这种方式,因为别人不知道你是怎么创建的
通过Dockerfile创建镜像(推荐)
我们用Dockerfile实现上面在centos中安装vim
FROM centos
RUN yum install -y vim
然后构建
docker build -t sixmillions/centos .
# 最后有个点,别丢了,那个是Dockerfile的路径



我们发现Dockerfile也是先运行一个容器,然后安装vim,然后删除容器.

