docker 常用命令记录
关于Dockerfile文件,推荐 这篇博客 https://www.cnblogs.com/jsonhc/p/7767669.html
基础命令
- 镜像
拉取镜像:
docker pull nginx 拉取最新镜像 latest
docker pull nginx:1.17.0 拉取指定版本镜像
查看镜像:
docker images 查看镜像列表
查找镜像:
docker search httpd
运行镜像:
docker run -t -i nginx:1.17.0 /bin/bash 以镜像nginx1.17为蓝本,运行一个容器,并进入终端,并执行 yum -y update,升级yum
更新镜像:
docker commit -m="yum has update" -a="lz" e278efb69851 lizheng/nginx:v2 为升级了yum的容器创建一个副本,也就是创建一个新的镜像 -m:提交的描述信息 -a:指定镜像作者
构建镜像:(需要Dockerfile文件)
Dockerfile文件内容如下
runoob@runoob:~$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "271648298@qq.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd lizheng
RUN /bin/echo 'lizheng:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
docker build -t lizheng/centos:6.7 . (注意:命令最后有一个点,代表当前目录)
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
镜像标签:
docker tag e60c235d2qfe lizheng/centos:dev
删除镜像:
docker rmi e60c235d2qfe 删除指定镜像,指定ID或者镜像名称
docker rmi `docker images -q` 删除所有镜像
docker rmi --force `docker images | grep doss-api | awk '{print $3}'` 删除镜像,其中doss-api为关键字
- 容器 指明容器时一般用容器ID或容器名称都可以。
查看容器
docker ps 查看运行的容器
docker ps -a 查看所有的容器(包括已经停止的)
docker ps -l 查看最后创建的一个容器
docker port bf08b7f2cd89 查看宿主机和容器的端口映射(前者是宿主机,后者是容器端口)
docker top my_nginx 查看容器内部运行的进程
docker logs -f bf08b7f2cd89 查看容器内部的标准输出。
docker inspect 容器 查看容器底层信息,它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
进入容器:
sudo docker exec -it 775c7c9ee1e1 /bin/bash 推荐这种方式,除此之外还有docker attach、 ssh 、nsenter等方式
删除容器
docker rm 容器ID (容器名称)
docker rm `docker ps -a -q` 删除所有容器
启动容器:
docker start my_nginx 启动一个已经停止的容器
docker restart my_nginx 重启一个正在运行的容器
停止容器:
docker stop my_nginx 停止一个正在运行的容器
- 运行一个容器
docker run --name lizheng-nginx -p 8803:80 -d -v /lizheng/test/nginx/www:/usr/share/nginx/html:ro -v /lizheng/test/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link myphp-fpm:php nginx:v1.17.0
运行nginx容器,并启动, -v 是挂载卷。 --link是连接nginx和php, 最后的nginx:v1.17.0是镜像
docker run --name test-nginx -d -p8081:80 nginx:v1.17.0 /usr/local/nginx/sbin/nginx -g "daemon off;"
docker run --name nginx8083 -p 8083:80 -d nginx
- 查看挂载卷地址
docker inspect redis-slave2 | grep Mount -A 20
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。
所谓诚其意者,毋自欺也。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!