docker的使用
docker镜像使用
使用 docker images 来列出本地主机上的镜像
REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
tag可以理解为不同的版本 参考git的tag,运行时可以指定tag,不指定默认latest
查找镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
命令 docker search
dockerhub上同一名称有很多版本,不同组织或个人上传的镜像,可以通过downloads start 优选镜像。
以Redis为例在dockerhub上搜索如下,来下载首选的offical Image
下载镜像
docker pull redis
选择tag可以下载指定版本 docker pull redis:alpine3.14
Description介绍了镜像的使用
启动镜像容器 -p 指定端口
$ docker run --name redis -p 6379:6379 -d redis
使用docker 启动一个本机redis作为开发测试使用还是很方便的,也不用更多的关心其他配置及数据存放,不用了删掉容器即可。
删除镜像
docker rmi redis:latest
docker rmi imageId
Docker 容器使用
启动容器
$ docker run --name redis -p 6379:6379 -d redis
- --name 指定容器名称
- -p 设置容器对外端口映射
- -d 后台执行
进入后台容器
docker exec -it 243c32535da7 /bin/bash
- -i: 交互式操作。
- -t: 终端。
- 243c32535da7: 容器id 或者使用容器名称 redis
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
- 查看已启动的容器
docker ps
- 查看所有容器
docker ps -a
- 强制杀掉运行的容器
docker kill -9 pid
- 停止容器
docker stop 容器名称/id
- 删除容器
docker rm -f 容器名称/id
Docker 容器连接
docker 通过-p指定网络端口映射
对多个容器进行交互可以使用--network 指定网络
首先创建docker网络
$ docker network create -d bridge esnet
将elasticsearch与kibana容器连接
启动elasticsearch 指定网络为esnet
docker run --name elasticsearch --network esnet -d \
-e ES_JAVA_OPTS="-Xms256m -Xmx1024m" \
-e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.9.0
启动kibana 指定网络为esnet
docker run --name kibana --network esnet \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 -p 5601:5601 -d kibana:7.9.0
Docker 仓库管理
- docker默认官方公共仓库 Docker Hub
- 阿里云镜像服务 登录账号:容器镜像服务
- 私有仓库Harbor
docker tag
为镜像打标签docker push
镜像:tag 推送镜像到仓库