可以把镜像运行成容器,一个镜像可以运行出多个容器
案例(把centos7 运行成容器)
| |
| |
| |
| docker run -di --name=centos7 centos:centos7 |
容器操作命令
| |
| docker ps |
| |
| |
| docker ps -a |
| |
| |
| docker ps -l |
| |
| |
| docker start id/名字 |
| |
| |
| docker stop 7d5e |
| |
| |
| docker stop `docker ps -q` |
| |
| |
| docker rm 容器id |
| |
| |
| docker rm `docker ps -a -q` |
| |
| |
| docker rmi `docker images -q` |
| |
| |
| docker exec -it 容器id /bin/bash |
| docker exec -it 90fd0665494f /bin/bash |
记住四条:
| docker ps |
| docker ps -a |
| docker start |
| docker stop |
run 运行容器操作
| |
| -如果容器不存在,会先创建再运行 |
| -create 容器,run运行 |
| - 创建并运行容器 |
| |
| |
| docker run -id --name=容器名字 镜像:标签 |
| docker run -it --name=容器名字 镜像:标签 |
| |
| |
| -docker run 参数 |
| -i 表示运行容器 |
| -d 以守护式容器在后台运行,用这个参数创建出来的容器,命令行还在宿主机上,没有进入到容器内部 |
| -t 表示容器启动后会进入容器命令行。加入这参数后,容器创建就能登录进去。即分配一个伪终端。 |
| --name 指定容器名字,如果不指定,会随机一个名字 |
| -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射 |
| -v 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上 |
| |
| |
| docker run -id --name=centos centos:7 |
| |
| |
| docker run -it --name=centos centos:7 |
| |
| |
| docker run -id --name=python python:3.9 |
| |
| |
| |
| 1 docker run -id --name=mycentos centos:centos7 |
| 2 在宿主机 |
| 3 docker exec -it mycentos /bin/bash |
| 4 yum install vim -y |
| 5 exit |
| 6 容器停还是没有停?没有,因为容器运行时的 bash 进程没有结束 |
| |
| |
| 如果创建容器并进入---》只要退出---》容器就停了 |
| 容器要运行,必须有个前台进程在运行,并且是夯住(阻塞)的,否则容器就停了 |
| |
| |
| |
| docker exec 容器名字/id 命令 |
| |
| docker exec -it 容器名字/id /bin/bash |
| docker exec -it python sh |
| |
| exit |
-v 映射操作
| |
| |
| |
| |
| 1 cd |
| 2 mkdir zeng |
| 3 运行容器,做目录映射 |
| docker run -id --name=centos7 -v /root/zeng:/zengcentos:centos7 |
| 4 在宿主机的 /root/zeng 下新建 xx.txt |
| vim xx.txt |
| |
| 5 来到容器内部:看这个文件在不在 |
| cat xx.txt |
| |
| 6 他们是相互影响的: |
| 容器内部修改文件---》会影响外部 |
| 外部修改文件---》影响内部 |
| |
| |
| |
| 1 有个django容器,做好映射,代码放在宿主机上即可,以后更新了代码,只要重启容器,代码就是最新了 |
| 2 运行mysql容器---》mysql配置文件,数据data目录,放在宿主机上做好映射 |
| 如果 mysql容器---》表数据,放到容器中---》如果删了容器---》数据库全没了 |
| 表数据,放在宿主机上---》把容器删除---》表数据还在----》再启动一个容器做好映射---》数据都还在 |
-p 端口映射操作
| |
| |
| |
| |
| |
| |
| docker run -id --name=mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 |
| |
| |
| |
| |
| yum install net-tools -y |
| netstat -nlp | grep 3307 |
| |
| |
| |
| |
| -命令行链接:mysql -h 10.0.0.110 -P 3307 -uroot -p |
| -Navicat: 链接,创建zeng数据库 |
| -python: |
| |
| |
| docker exec -it mysql5.7 /bin/bash |
| mysql -uroot -p |
| show databases; |
文件拷贝操作(宿主机执行)
| |
| docker cp 容器名称:容器目录 需要拷贝的文件或目录 |
| docker cp 0a9633190cb9:/xx.txt /root/lqz/lqz.txt |
| |
| docker cp 需要拷贝的文件或目录 容器名称:容器目录 |
| docker cp /root/lqz/xx.txt 0a9633190cb9:/xx.txt |
查看容器IP地址
| docker inspect 容器名称 |
| docker inspect 0a9633190cb9 --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix