docker 命令
sudo systemctl status docker
确认Docker守护进程是否正在运行
sudo systemctl start docker
启动docker引擎
sudo systemctl restart docker
重新启动docker引擎
docker pull [r:tag]
从仓库中拉取镜像
docker images
查看本地所有镜像
docker rmi
删除本地镜像
docker rm
删除容器
docker save busybox:latest hello-world:latest > export.tar
导出镜像
docker load -i [xxx.tar]
导入镜像 --input string Read from tar archive file, instead of STDIN
docker run -d --name mytomcat -p 8089:8080 tomcat:jdk21
启动一个docker容器,如果这个容器镜像没有在本地,那么会从hub上面进行拉取再启动。
-d Run container in background and print container ID(在后台运行,并输入容器的id)
启动后可以配合docker logs [容器id] 来查看输入日志
docker run --rm -it my-laravel-app php artisan tinker
--rm
确保容器在退出后会被自动删除。对于那些只需要短暂存在或一次性执行的任务来说,--rm
非常合适。例如,你可能想要运行一个命令来测试应用程序的行为,或者执行一些数据库迁移操作,一旦任务完成就没有必要保留容器了
docker logs --help
帮助指令,其他的命令也可以这么写。例如,docker run --help
docker stop [容器id]
停止容器
docker start[容器id]
运行容器
docker ps
查看所有已经在运行的容器
docker ps -a
查看所有容器(包括已经运行的和没有在运行的)
docker exec -it [容器id] /bin/bash
进入容器命令行
exec
退出容器命令行
docker cp 20241212020001.tar.gz mytomcat:/tmp/
从宿主机复制文件到容器中。其中mytomcat是启动容器时的容器名称。
docker cp mytomcat:/usr/local/tomcat/BUILDING.txt ./
从容器中复制命令到宿主机
docker export -o mytomcat.tar mytomcat
将容器导出
docker import mytomcat.tar tomcat2
将.tar容器文件导入,并成为一个新的镜像
docker commit
将当前的容器生成一个新的镜像,例如:docker commit -a "John Doe <john.doe@example.com>" my_container my_new_image:latest
尽管 docker commit
是一个方便的功能,但为了保持良好的镜像管理习惯,建议尽可能使用 Dockerfile 来定义和构建镜像,而不是依赖于提交运行中的容器
数据卷 docker volume
docker volume create my-volume
创建数据卷,命名卷的数据会保存在 Docker 主机上的特定位置,通常是 /var/lib/docker/volumes/
下的一个子目录中,但具体的路径取决于 Docker 的配置
docker volume ls
列出所有数据卷
docker volume inspect my-volume
查看数据卷详细信息
docker volume rm my-volume
删除数据卷
docker run 中使用数据卷(推荐mount方式)
方式一:docker run -d --name my-container -v my-volume:/app my-image
方式二:docekr run -d --name my-container --mount source=my-volume,destination=/app my-image
--mount 选项提供了更加明确的语法,并且支持更多配置选项,例如:设置权限模式或读写权限。
挂载多个数据卷示例:
docker run -d \ --name my-container \ --mount type=bind,source=/host/path1,destination=/container/path1 \ --mount type=bind,source=/host/path2,destination=/container/path2 \ --mount type=volume,source=named-volume,destination=/container/path3 \ my-image
docker网络指令
docker network ls
列出所有的网络
- 说明:列出所有 Docker 网络,包括默认的
bridge
、host
和none
网络。
输出示例:
docker network create [OPTIONS] NETWORK_NAME
创建网络
参数解释:
docker network inspect NETWORK_NAME
检查网络详情
说明:显示指定网络的详细信息,包括网络配置、连接的容器等。
docker network connect NETWORK_NAME CONTAINER_NAME
将现有的容器连接到网络
例如:docker network connect --alias=my_alias --ip=172.18.0.10 my_bridge_network my_container
docker network disconnect NETWORK_NAME CONTAINER_NAME
端口容器与网络
docker network rm NETWORK_NAME
删除网络
可以在容器启动(docker run)时,通过--network指定网络
docker run -d --name container_name --network my_bridge_network IMAGE