docker常用命令

bash 复制代码
sudo docker cp 1.py h6:/test  #把当前路径下的1.py复制进docker  h6的test目录之下

sudo  docker pull ubuntu:20.04   # 将ubuntu:20.04docker镜像从仓库pull到本地

docker images #查看本地镜像

docker run -itd --name h1  ready2-h #运行容器  ubuntu-test--命名的容器名字,ubuntu:20.04在刚命名容器中运行的镜像,改名字进而创建多个docker容器,(
● -i, --interactive:保持标准输入(stdin)打开,允许与容器进行交互。
● -t, --tty:为容器分配一个伪终端(pseudo-TTY),以便可以在容器中执行交互式命令。
● -d, --detach:将容器放入后台运行模式,即使没有终端连接也保持容器运行。

docker rm ubuntu3 ubuntu4# : 删除创建的container

docker stop ubuntu3 ubuntu4 #:停止正在运行的container

docker start host1 #启动


docker ps  #查看正在运行的容器
docker ps -a #查看包括已经停止的容器

docker ps -aq  #列出所有容器的 ID,包括运行中的和停止的容器  , 这个命令在清理容器时非常有用。例如,要删除所有容器 
 
docker rm $(docker ps -aq)


docker build -t <image_name>:<tag> . #  会使用当前目录下的 Dockerfile 来构建 Docker 镜像。  

docker save -o <output_file>.tar <image_name>:<tag> #:Docker 镜像导出为 tar 文件,便于备份或转移到其他系统 
 
docker load -i dm_v1.tar  #   将一个已经保存为 .tar 文件的 Docker 镜像加载到本地的 Docker 环境中 ,-i 参数指定要加载的 .tar 文件  

容器内

bash 复制代码
sudo docker exec -it h1 /bin/bash  #通过exec命令进入ubuntu容器,进入ubuntu20.04image实例出的容器后,sudo,ifconfig一系列命令不能用,apt-get update      apt-get install net-tools先安装ifconfig

sudo docker attach dockername

apt-get install iputils-ping安装ping

apt-get install iproute2安装 ip addr命令查看容器内接口

#容器内创建ovs时apt-get install openvswitch-switch似乎并没有启动ovs服务,
service openvswitch-switch start #先启动服务,就可以使用ovs了

docker cp 命令将本地文件复制到容器中:

docker cp file <container_id>:/path/in/container/file
 /path/on/local/system/file 替换为本地系统上要上传的文件路径,将 <container_id> 替换为容器的实际 ID,将 /path/in/container/file 替换为容器中要保存文件的路径。

 
Ctrl + p,然后 Ctrl + q:在使用 docker attach 时,可以安全地分离终端而不终止容器。  

网络模式相关命令

bash 复制代码
docker run -itd --name ubuntu-test --net none ubuntu:20.04 

docker inspect --format='{{.HostConfig.NetworkMode}}' h1 查看容器host2的网络模式

docker network create --subnet 192.168.1.0/24 --gateway 192.168.1.1 ryu-net
● docker network create: 这是 Docker 命令的一部分,用于创建一个网络。
● --subnet 192.168.1.0/24    网关为 192.168.1.1      ryu-net: 这是要创建的网络的名称

docker network ls:列出所有的 Docker 网络。

docker inspect <container id>: 在 docker inspect 输出的 JSON 数据中,查找 NetworkSettings 部分,以了解容器的网络配置。你也可以使用 --format 选项直接提取网络模式。  

创建新镜像

bash 复制代码
docker rmi <image>:删除镜像
docker commit [CONTAINER ID] [IMAGE NAME]   #容器ID  创建的镜像名
docker images   #可以看到该镜像已经创建成功,下次需要新建容器时可直接使用该镜像

ovs-docker工具

bash 复制代码
sudo ./ovs-docker add-port ovs eth0-ovs host1 --ipaddress=10.0.1.2/24 --gateway=10.0.1.1  
#创建了一对接口, 利用ovs-docker工具给容器host1添加一个接口eth0-ovs,其ip为10.0.1.2/24,这个接口直连ovs网桥,
#在主机端也会创建一个接口02e9db67174f4_l(这种形式)ifconfig可查到,sudo ovs-vsctl show也可查到

问题

重启虚拟机ovs-docker创建的一对端口会直接消失,在ovs-docker中创建一对接口的命令

会提示已经创建,但在ovs和docker中都找不到端口,删除ovs后重新创一个即可 如何查看创建一对的接口的名字,让h2 ping

h4,ifconfig检查个端口的前后RX TX情况,便可得到

相关推荐
黄毛火烧雪下4 小时前
【Ruby 】脚本和自动化语言 常用的内容
运维·自动化·ruby
小白不想白a5 小时前
【shell】每日shell练习:安全日志入侵检测/系统配置文件合规检查
运维·服务器
洛克大航海6 小时前
Linux 中新建用户
linux·运维·服务器
三口吃掉你6 小时前
Docker安装Elasticsearch、kibana、IK分词器
elasticsearch·docker·kibana·ik分词器
dehuisun6 小时前
jenkins流水线部署springboot项目
运维·jenkins
fly五行7 小时前
Windows 系统下使用 Docker 安装 Milvus 向量数据库
windows·docker·milvus
爱宇阳7 小时前
离线环境下运行 Docker 容器编排指南
docker·容器·eureka
蜜蜜不吃糖7 小时前
解决Vcenter告警datastore存储容量不足问题
linux·运维·服务器
东城绝神7 小时前
《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 7.4.5容器版分片集群》
linux·运维·redis·架构·分片集群
Java陈序员8 小时前
免费开源!一款操作 MySQL 和 MariaDB 的 Web 界面工具!
mysql·docker·php·mariadb