CMD可以用来设置容器启动时会执行的命令。
- 容器启动时默认执行的命令
- 如果docker container run启动容器时指定了其他命令,则CMD命令会被忽略
- 如果定义了多个CMD,只有最后一个会被执行。
清理容器FROM ubuntu:21.04ENV VERSION=2.0.1RUN apt-get update && \apt-get install -y wget && \wget https://github.com/ipinfo/cli/releases/download/ipinfo-${VERSION}/ipinfo_${VERSION}_linux_amd64.tar.gz && \tar zxf ipinfo_${VERSION}_linux_amd64.tar.gz && \mv ipinfo_${VERSION}_linux_amd64 /usr/bin/ipinfo && \rm -rf ipinfo_${VERSION}_linux_amd64.tar.gz
清理没有使用到的镜像命令docker system prune -f
docker image prune -a
docker container run -it ipinfo
会自动进入这个容器的shell,为什么我们没有没有cmd这命令,还会进入shell
执行以下的命令:
docker image history ipinfo

我们再运行这个container的时候还可以指定命令
第二个就是指定的命令ipinfo
docker container run -it ipinfo ipinfo
FROM ubuntu:21.04
ENV VERSION=2.0.1
RUN apt-get update && \
apt-get install -y wget && \
wget https://github.com/ipinfo/cli/releases/download/ipinfo-${VERSION}/ipinfo_${VERSION}_linux_amd64.tar.gz && \
tar zxf ipinfo_${VERSION}_linux_amd64.tar.gz && \
mv ipinfo_${VERSION}_linux_amd64 /usr/bin/ipinfo && \
rm -rf ipinfo_${VERSION}_linux_amd64.tar.gz
CMD ["ipinfo"]
CMD优先级,最后一个CMD优先级最高
