docker 常用命令

docker

1.docker镜像下载

复制代码
docker pull nginx //下载nginx镜像
docker images  // 列出常用镜像
docker rmi 镜像(image)的ID //移除镜像

2.运行容器

复制代码
docker run 容器名字
docker run -d 容器名字  //容器在后台运行,容器的日志不会打印在控制台
​
docker run -p 80:80 nginx  //运行镜像中的实例,因为本机的端口实际上是不含镜像的,通过-p参数将本机的端口运行镜像中端口的容器

3.查看docker运行的容器

复制代码
docker ps

4.挂载卷

复制代码
docker run -d -p 80:80 -v /website/html:/usr/share/nginx/html nginx  //运行次命令就可以保证宿主机的目录里面更改数据文件,在容器里面也会得到更改;容器数据发生变化,宿主机的数据也会发生改变。
​
docker rm -f 容器id           //-f 强制删除容器
​
docker volume create nginx_html //创建一个挂载卷
​
docker run -d -p 80:80 -v nginx_html:/usr/share/nginx/html nginx //也可以这么运行,就不用在命令行中输入宿主机对应的目录,但是
​
docker volume list         //查看创建的所有卷
​
docker volume inspect nginx_html //检查挂在卷所在的位置
​
docker volume rm nginx_html  //删除挂载卷 
​
docker volume prune -a //删除所有没有在容器中使用的卷

5.run的其他参数

复制代码
docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=tech -e MONGO_INITDB_ROOT_PASSWORD=shrimp mongo //在启动时将一些环境变量账号名和密码一起配置
​
mongosh "mongodb://tech:shrimp@111.231.100.92:27017" //这样就能连接mongodb
​
docker run -d --name my_nginx nginx  //启动容器的时候给容器命名 ,my_nginx 命名有要求
​
docker run --it --rm alpine  // 比较有特色的过河拆桥式的 运行容器,--it允许容器控制台在后台操控容器,--rm当容器不工作之后会删除容器    一般用来临时调试一个容器
​
docker run -d --restart always nginx  //一旦容器停止,就会重启,一般用于宿主机断电之类的,容器出错等
​
docker run -d --restart unless-stopped nginx //除非是手动重启,不然就是跟上面的操作一个作用

6.调试容器

复制代码
docker run //命令每次都会从镜像中创建一个容器来运行
​
docker stop 容器id或者容器名字 //可以停止容器的运行
​
docker ps //只能查看到运行的容器
​
docker ps -a //能查看到所有运行的容器
​
docker start 容器id或者容器名字 //可以开启容器的运行   此时容器的映射和挂载卷都会保留
​
docker logs 容器id或者容器名字  //可以查看容器运行时候的日志
​
docker logs -f 容器的id或者容器名字  //可以实时检测容器运行时的日志,滚动查看日志
​
docker exec 容器id或者名字 ps -ef //就可以查看容器里面的进程情况,因为容器内做了资源视图隔离,所以看不到宿主机的进程

7.构建镜像

复制代码
FROM python:3.13-slim  //表示镜像的来源
​
WORKDIR /app     //表示目录在当前目录执行
​
COPY ..    //第一个点表示当前目录,第二个点表示镜像目录 /app
​
RUN pip install -r requirements.txt //表示执行的命令
​
EXPOSE 8000 //给其他使用镜像人参考用的,实际的端口还是以程序为准
​
CMD["python3","main.py"]  //程序会执行这个命令
​
docker build -t docker_test . //构建一个镜像,最后的.表示在当前目录构建
​
docker login //docker登录镜像
​
docker build -t docker的用户名/docker_test . //重新构建一个镜像,如果需要发布到docker hub
​
docker push docker的用户名/docker_test //将构建的镜像推送到dockerhub里面
​
​

8.构建网络

复制代码
docker network list  //展示出所有docker的网络,三种默认的网络是不能删除的,
​
docker network rm 网络id //删除自定义的子网

9.docker compose (一个轻量级的技术)

复制代码
docker compose up -d     //使用docker compose命令,打包所有的容器
docker compose down      //停止并删除容器
相关推荐
容器魔方3 小时前
KCD 杭州站 x OpenInfra Days China首次联手!华为云云原生团队与您共探Karmada多模板工作负载多集
云原生·容器·云计算
xx.ii3 小时前
k8s:pod-1
云原生·容器·kubernetes
期待のcode4 小时前
Docker容器
java·docker·容器
R-G-B7 小时前
【P7】docker镜像发布和部署
运维·docker·容器·docker镜像·docker镜像发布和部署·镜像发布和部署·docker镜像发布
hu1j7 小时前
[HTB] 靶机学习(十二)Eureka
学习·安全·web安全·网络安全·云原生·eureka
没有bug.的程序员7 小时前
Eureka 注册中心原理与服务注册发现机制
java·spring·云原生·eureka·架构·注册中心·服务注册发现
Aomnitrix9 小时前
我的容器管理革命:从命令行地狱到可视化操控的蜕变
云原生·eureka
做运维的阿瑞10 小时前
Kubernetes 原生滚动更新(Rolling Update)完整实践指南
云原生·容器·kubernetes
神秘人X70710 小时前
K8s Pod生命周期完全指南
容器·kubernetes
刘恒12345678911 小时前
Windows 10 docker 配置(PHP+Nginx+Mysql)(thinkphp5项目)环境
windows·docker·php