Docker常用命令及中间件应用示例
Docker
查看docker系统信息
docker info
查看docker版本信息
docker version
查看镜像/容器/数据卷所占的空间
docker system df
镜像
搜索镜像
按名称搜索 docker search redis
按条件搜索 docker search --filter "is-official=true" --filter "stars=3"
下载最新或指定版本的镜像
docker pull redis
docker pull redis:5.0.5
docker pull mysql:latest
docker pull grafana/grafana
列出本地镜像
docker images 或 docker image ls
批量获取镜像ID
docker image ls -a -q
查看镜像详细信息
docker image inspect [镜像名称]
删除镜像或容器
docker image rm [xxxxxx]
docker rmi [xxxxxx]
删除无用的虚悬镜像 docker image prune
删除一个或多个容器 docker rm []
删除所有镜像 docker rmi $(docker images -q)
批量删除镜像 docker image rm $(docker image ls -a -q)
批量删除容器 docker container rm $(docker container ls -a -q)
删除untagged images,也就是id为None的镜像 docker rmi $(docker images | grep "^" | awk "{print $3}")
容器
运行、启动和停止容器
docker run --name docker-redis --restart=always -d -p 6379:6379 redis
docker run -itd --name docker-mysql --restart=always -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker run --name docker-nginx --restart=always -d -p 8080:80 -v /Users/ninglg/nginx:/usr/share/nginx/html nginx
docker run -d --name=docker-grafana --restart=always -p 3000:3000 grafana/grafana
docker run --name docker-etcd --restart=always -d -p 2379:2379 -p 2380:2380 elcolio/etcd
启动容器 docker start [容器名/ID]
停止容器 docker stop [容器名/ID]
批量停止容器 docker container stop $(docker container ls -a -q)
强制停止容器 docker kill [容器名/ID]
后置设置更新容器自启动 docker update --restart=always [容器名/id]
设置挂载(如redis为例)
-v /opt/data/redis:/data ##将主机中/opt/data/redis目录下的redis挂载到容器的/data
-v /opt/data/redis/redis.conf:/etc/redis/redis.conf ##将主机中redis.conf配置文件挂载到容器的/etc/redis/redis.conf文件中
指定容器数据卷启动 (等于主机目录挂载到容器指定目录)
docker run -it -v 主机目录:容器目录 镜像名
docker run -it -v /mydata:/mydata centos
查看运行中、历史创建的、所有的容器
docker ps
docker ps -n 5
docker ps -a
访问容器
docker exec -it docker-redis redis-cli
docker exec -it docker-mysql mysql -uroot -p123456
docker exec -it docker-nginx bash
docker exec -it docker-etcd /bin/sh
获取容器ID或名字
docker container ls -a
批量获取容器ID
docker container ls -a -q
查看容器详细信息
docker inspect [容器名称]
查看容器所属的ip地址:
docker inspect docker-redis | grep IPAddress
docker管理
数据卷管理
docker volume create 数据卷名称 #创建数据卷
docker volume rm 数据卷名称 #删除数据卷
docker volume inspect 数据卷名称 #查看数据卷
网络管理
docker network ls 查看网络信息
docker network create --subnet=网段 网络名称
docker network rm 网络名称
容器编排
docker-compose
创建一个docker-compose.yml文件
构建镜像
创建镜像
docker build 或 docker build -t docker-xxx:0.1 .
env GOOS=linux GOARCH=386 go build main.go
docker build -t main:v1 .
docker run --name docker-main -d -p 8090:8090 main:v1