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