Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
镜像管理
Docker镜像是容器运行的基础,它包含了运行容器所需的代码、运行时、库、环境变量和配置文件。
拉取镜像:
docker pull <image_name>:<tag>
查看本地镜像:
docker images
删除镜像:
docker rmi <image_id/image_name>:<tag>
构建镜像:
docker build -t <image_name>:<tag> .
保存镜像到文件:
docker save -o <path_for_save.tar> <image_name>:<tag>
加载镜像文件:
docker load -i <path_to_image.tar>
容器管理
容器是Docker的运行实例,提供了隔离的环境来运行应用。
创建容器:
docker create --name <container_name> <image_name>:<tag>
运行容器:
docker run -d --name <container_name> <image_name>:<tag>
查看运行中的容器:
docker ps
查看所有容器:
docker ps -a
停止容器:
docker stop <container_id/container_name>
启动容器:
docker start <container_id/container_name>
删除容器:
docker rm <container_id/container_name>
进入运行中的容器:
docker exec -it <container_id/container_name> /bin/bash
网络管理
Docker网络功能允许容器间通信以及容器与外部世界的通信。
列出网络:
docker network ls
创建网络:
docker network create <network_name>
连接容器到网络:
docker network connect <network_name> <container_name>
断开容器与网络的连接:
docker network disconnect <network_name> <container_name>
删除网络:
docker network rm <network_id/network_name>
数据卷管理
通过数据卷(Volumes)或挂载(Mounts),Docker可以实现数据的持久化和共享。
创建数据卷:
docker volume create <volume_name>
列出数据卷:
docker volume ls
删除数据卷:
docker volume rm <volume_name>
查看数据卷详细信息:
docker volume inspect <volume_name>
挂载数据卷到容器:
在运行容器时使用-v <volume_name>:<container_path>
选项。
高级操作
查看容器日志:
docker logs <container_id/container_name>
复制文件到/从容器:
docker cp <container_id>:<path_in_container> <path_in_host> docker cp <path_in_host> <container_id>:<path_in_container>
查看容器内部进程:
docker top <container_id/container_name>
更新容器配置:
docker update --cpu-shares 512 -m 300M <container_id/container_name>