印象笔记链接: https://app.yinxiang.com/fx/816a7b17-37a1-49c6-a7c5-210282b18d4a
一:镜像操作
注意: -f 参数为强制删除
1.1 查看镜像
a.查看所有镜像:
docker images
b.批量查找镜像,下面的xxxx为你要查询的镜像名称,类似like查询
docker images | grep ‘xxxx’ | awk ‘{print $3}’ | xargs
1.2 删除镜像
a.单个删除
docker rmi 镜像id/镜像名称
b.批量删除 同查找
docker images | grep ‘xxxx’ | awk ‘{print $3}’ | xargs docker rmi -f
c.删除所有镜像
docker rmi $(docker images -q)
d.删除名称为none的镜像
docker rmi -f $(docker images | grep “” | awk “{print $3}”)
1.3 镜像重命名
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
栗子:
docker tag 镜像ID 你要更改的镜像名称:版本号
docker tag 6ec125fd1895 xxxx:5000/jdk1.8.0_251:1
更改完之后 docker images就会有多一个镜像ID一样,但是名称不一样的镜像
二:容器操作
2.1 查看容器
a. 查看所有容器
docker ps -a
b. 查看正在运行的容器
docker ps
c. 批量某个字符开头的docker 容器
docker ps -a | grep “redi” | awk ‘{print $1 }’|xargs
2.2 停止容器
a. 停止单个容器
docker stop 容器ID / 容器名称
b. 批量停止容器
docker ps -a | grep “redi” | awk ‘{print $1 }’|xargs docker stop -f
2.3 删除容器
a. 单个删除容器
docker rm 容器ID / 容器名称
b. 批量删除容器
docker ps -a | grep “redi” | awk ‘{print $1 }’|xargs docker rm -f
c. 删除所有的容器
docker rm $(docker ps -a -q)
2.4 查看容器日志
实时查看:
docker logs -f 容器ID 或者 容器名称
栗子:
docker logs -f seata-server
2.5 运行容器
docker run -di --name xx-cloud-eureka --net=host -p 9000:9000 --restart=always --privileged=true -v /aa/bb:/cc/dd xx-cloud-eureka:latest
参数说明:
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用
–name 设置的容器名称
–net 指定网络配置模式
bridge: 默认值,连接到网桥
host: 宿主机和容器网络保持一致,使用本地主机网络环境
none: 把当前容器的网络放到隔离的网络栈中,用户可自行配置
container : 把当前容器放到一个配置好网络的容器中
转: https://blog.51cto.com/13362895/2130375
–restart 主机重启配置
always 主机重启或者docker重启后,启动启动当前容器
-p 指定端口
-v 挂在目录,前是宿主机路径,后是容器目录,注意,挂在的时候,如果需要把文件挂在到容器中,一定要再容器启动之前把文件存放到宿主机的指定目录中,否则获取不到文件
2.6 进入容器命令 ,centors7
docker exec -it 容器id或容器名称 /bin/bash
三: 搭建docker私有仓库
3.1 拉取docker-registry, 端口为:5000
docker pull registry
或者直接运行registry,没有找到镜像会自动帮下载
docker run --name docker-registry -d -p 5000:5000 -v /usr/local/registry:/var/lib/registry registry
3.2 运行registry后访问
http://ip:5000/v2/_catalog 或者curl ip:5000/v2/_catalog 即可
因为docker-registry 私有仓库有固定格式,所以需要更改为固定格式的镜像,才能push到私有仓库里面
其格式: ip:5000/镜像名称:版本
参照 1.3 中重命名镜像
docker push aaa.bbb/ccc.ddd:5000/xxxx:latest
push到私有仓库之后再刷新仓库,会有新的镜像 http://ip:5000/v2/_catalog
注意,如果不能push,提示超时之类的,需要再 /etc/ 目录下的 daemon.json中配置私有仓库地址
{
“registry-mirrors”: [“https://xxxx.mirror.aliyuncs.com”], # 这里我设置为阿里云的镜像加速地址
“insecure-registries”: [“xxx.xx.xx.xx:5000”] # 配置的私有仓库地址,这里建议设置为内网地址,否则push镜像的时候会很慢
}
建议: 每次拉取镜像之前,先清空docker-registry中的blob 和其配置,这里为registry运行时挂在的目录
docker exec registry rm -rf /var/lib/registry/docker/registry/v2/repositories/xxx(具体仓库位置)
docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml