一、docker镜像基本操作
#查找可按照docker镜像,如查找Seata
docker search seata
结果如图1
#下载镜像
进入docker的官网,地址:https://hub.docker.com
docker pull seataio/seata-server:1.2.0
#查看docker已安装镜像
docker images
#删除镜像
指定名称删除镜像
#-f 强制删除
docker rmi -f seataio/seata-server:1.2.0
# 根据id删除
docker rmi 35sfaf3sgsd2gsdf
#删除所有没有引用的镜像
docker rmi `docker images | grep none | awk '{print $3}'`
#删除所有镜像
docker rmi -f $(docker images)
二、docker容器基本操作
# 列出容器
# -a 查看所有的容器信息,包括停止退出的容器
docker ps -a
#停止容器
# $ContainerName及$ContainerId可以用docker ps命令查询出来
docker stop $ContainerName(或者$ContainerId)
docker stop nginx
docker stop c5f5d5125587
#强制停容器
docker kill $ContainerName(或者$ContainerId)
#启动已停止的容器
docker start $ContainerName(或者$ContainerId)
#进入容器
#查出容器的pid
docker inspect --format "{{.State.Pid}}" $ContainerName(或者$ContainerId)
#根据容器的名称进入容器
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
docker exec -it $ContainerName(或者$ContainerId) /bin/bash (推荐使用exec,因为退出时不会停止容器)
docker run-it $ContainerName(或者$ContainerId) /bin/bash
#删除容器
#删除指定容器
docker rm $ContainerName(或者$ContainerId)
#删除过滤出的容器【按名称过滤】
docker rm `docker ps -a | grep mall-* | awk '{print $1}'`
#强制删除所有容器
docker rm -f $(docker ps -a -q)
三、docker启动容器常用操作
#启动容器
#使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
--name="nginx-lb": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID#
docker run --name mynginx -d nginx:latest
#启动容器并映射端口
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 8080 端口映射到主机的 8080 端口,
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
docker run --name mynginx -p 8080:8080 -d nginx:latest
#启动容器并映射主机目录
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
--volume , -v: 绑定一个卷
docker run --name mynginx -p 8080:8080 -v /data:/data -d nginx:latest
#启动容器并设置环境变量
使用镜像 elasticsearch:7.6.2,以后台模式启动一个容器,将容器的 9300 端口映射到主机的9300 端口,并设置运行环境变量信息"discovery.type=single-node"、"cluster.name=elasticsearch"
-e username="ritchie": 设置环境变量;
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -d elasticsearch:7.6.2