systemctl start docker 启动docker
systemctl stop docker 关闭docker
systemctl restart docker 重启docker
systemctl enable docker 设置docker开机自启
systemctl status docker 查看docker运行状态
sudo systemctl daemon-reload 重新加载配置文件
- 搜索镜像:docker search <镜像名>,例如:docker search ubuntu。
- 下载镜像:docker pull <镜像名>:<标签>,例如:docker pull ubuntu:latest。
- 列出本地镜像:docker images。
- 删除本地镜像:docker rmi <镜像ID>,例如:docker rmi ubuntu:latest。
- 删除所有镜像:docker rmi $(docker images -aq)
- 查看镜像详细::docker inspect <镜像名>,例如:docker inspect ubuntu:latest。
- 创建自定义镜像:通过编写Dockerfile文件并使用docker build命令构建镜像。
- 导出和导入镜像:docker save <镜像名>:<标签> > 文件名.tar和docker load < 文件名.tar。
- 上传镜像到仓库:docker push <镜像名>:<标签>,例如:docker push myrepo/ubuntu:latest。
- 从仓库拉取镜像:docker pull <仓库地址>/<镜像名>:<标签>,例如:docker pull myrepo/ubuntu:latest。
- 使用镜像创建容器:docker run -d -p <主机端口>:<容器端口> <镜像名>:<标签>,例如:docker run -d -p 8080:80 nginx:latest。
- 列出正在运行的容器:docker ps,加上-a选项可以查看所有容器,包括已经停止的容器。
- 创建并启动容器:docker run <选项> <镜像名>:<标签>,例如:docker run -d -p 8080:80 nginx:latest。
- 停止容器:docker stop <容器ID或容器名>,例如:docker stop my_container。
- 启动容器:docker start <容器ID或容器名>,例如:docker start my_container。
- 重启容器:docker restart <容器ID或容器名>,例如:docker restart my_container。
- 进入容器内部:docker exec -it <容器ID或容器名> <命令>,例如:docker exec -it my_container /bin/bash。
- 查看容器日志:docker logs <容器ID或容器名>,例如:docker logs my_container。
- 删除容器:docker rm <容器ID或容器名>,例如:docker rm my_container。
- 查看容器详细信息:docker inspect <容器ID或容器名>,例如:docker inspect my_container。
- 导出和导入容器:docker export <容器ID或容器名> > 文件名.tar和docker import < 文件名.tar。
- 从容器创建新镜像:docker commit <容器ID或容器名> <新镜像名>:<标签>,例如:docker commit my_container my_image:latest。
- docker-compose down:停止并删除Compose启动的容器
- 查看Docker网络列表:docker network ls。
- 创建自定义桥接网络:docker network create <网络名称>,例如:docker network create my_network。
- 查看指定网络的详细信息:docker network inspect <网络名称或网络ID>,例如:docker network inspect my_network。
- 将容器连接到网络:docker network connect <网络名称> <容器名称或容器ID>,例如:docker network connect my_network my_container。
- 从网络中断开容器:docker network disconnect <网络名称> <容器名称或容器ID>,例如:docker network disconnect my_network my_container。
- 删除网络:docker network rm <网络名称>,例如:docker network rm my_network。
- 查看容器网络连接信息:docker network inspect <容器名称或容器ID>,例如:docker network inspect my_container。
- 修改容器网络连接:docker network disconnect <网络名称> <容器名称或容器ID>和docker network connect <网络名称> <容器名称或容器ID>。
- 登录到Docker Hub或私有仓库:docker login,例如:docker login myregistry.example.com。
- 登出Docker Hub或私有仓库:docker logout,例如:docker logout myregistry.example.com。
- 查看镜像仓库中的镜像列表:docker search <镜像名称>,例如:docker search ubuntu。
- 拉取镜像到本地:docker pull <镜像名称>,例如:docker pull ubuntu。
- 推送本地镜像到仓库:docker push <镜像名称>,例如:docker push myregistry.example.com/my_image。
- 从仓库中删除镜像:docker rmi <镜像名称>,例如:docker rmi myregistry.example.com/my_image。
- 为本地镜像添加标签:docker tag <本地镜像名称> <新标签名称>,例如:docker tag my_image:latest my_image:v1.0。
- 查看镜像详细信息:docker image inspect <镜像名称>,例如:docker image inspect ubuntu。
- 查看镜像历史:docker history <镜像名称>,例如:docker history ubuntu。
- 登录到远程仓库:docker login -u 用户名 -p 密码 192.168.25.163:8084
- docker network ls:列出所有网络。
- docker network create <network_name>:创建一个新的网络。
- docker volume ls:列出所有数据卷。
- docker volume create <volume_name>:创建一个新的数据卷。
- docker-compose up:在Compose文件所在目录启动容器。
- docker-compose down:停止并删除Compose启动的容器。
- docker system prune:清理不再使用的资源,包括停止的容器、未使用的镜像、网络和数据卷。
- docker push: 这是Docker的一个子命令,用于将本地的Docker镜像推送到远程Docker仓库。
答:使用委托的主要优势是它可以将方法作为参数传递给其他方法或对象。这使得代码更加灵活和可重用,因为它允许您在运行时动态地更改方法的行为。
例如,假设您一个方法,它需要执行某些操作并在完成后通知调用方。如果您直接调用该方法,那么您只能执行该方法的行为,而无法更改它的行为。但是,如果您使用委托将该方法作为参数传递给其他方法或对象,那么可以在运行时动态地更改该方法的行为,从而使代码更加灵活和可重用。
委托相对于直接调用方法的优点
using System;
public delegate void MyDelegate(string message);
class MyClass
{
public void MethodA(string message)
{
Console.WriteLine("MethodA: " + message);
}
public void MethodB(string message)
{
Console.WriteLine("MethodB: " + message.ToUpper());
}
}
public class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
// 声明委托
MyDelegate myDelegate;
// 实例化委托并指定目标方法
myDelegate = new MyDelegate(myClass.MethodA);
// 调用委托
myDelegate("Hello, World!");
// 更改委托目标方法
myDelegate = new MyDelegate(myClass.MethodB);
// 调用委托
myDelegate("Hello, World!");
}
}