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

相关推荐
Jiude43 分钟前
MinIO 社区版被故意阉割,Web管理功能全面移除。我来试试国产RustFS
后端·docker·架构
飞询1 小时前
Docker 安装 Elasticsearch 9
elasticsearch·docker
Tipriest_2 小时前
Ubuntu常用的软件格式deb, rpm, dmg, AppImage等打包及使用方法
linux·运维·ubuntu
真智AI2 小时前
利用 Claude Opus 4 自动化 GitHub 工作流:从安装到实战详解
运维·自动化·github
胡斌附体3 小时前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
愚润求学3 小时前
【Linux】自旋锁和读写锁
linux·运维
大锦终3 小时前
【Linux】常用基本指令
linux·运维·服务器·centos
知北游天3 小时前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong8743 小时前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
try2find4 小时前
移动conda虚拟环境的安装目录
linux·运维·conda