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情况,便可得到

相关推荐
bcxwz66925 分钟前
linux 下常用变更-8
linux·运维·服务器
ReadThroughLife1 小时前
【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER
microsoft·macos·docker·容器
KrityCat1 小时前
阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
阿里云·docker·容器
{⌐■_■}2 小时前
【ubuntu】虚拟机安装配置,sh脚本自动化,包含 apt+时间同步+docker+mysql+redis+pgsql
ubuntu·docker·自动化
weixin_307779136 小时前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse
bubiyoushang8886 小时前
Windows11 WSL2 Ubuntu编译安装perf工具
linux·运维·ubuntu
xuanwojiuxin7 小时前
linux panic-propagation
linux·运维·服务器
藥瓿亭9 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
955.9 小时前
k8s从入门到放弃之Pod的容器探针检测
云原生·容器·kubernetes
LFloyue10 小时前
Linux离线(zip方式)安装docker
linux·docker