目录
1、docker拉取镜像
docker pull 用户名/镜像名:tag
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
#如果用户名不存在,则拉取的是docker官方的镜像,否则为指定用户制作的镜像
拉取镜像前最好能docker官方仓库中去查询下镜像
官网镜像库区地址:
Docker Hub Container Image Library | App Containerization
上图第一个是docker官方制作的nginx镜像,通过docker pull nginx拉取.
第二个是非docker官方制作的镜像,通过docker pull nginx/nginx-ingress,表示,是nginx用户创建的镜像nginx-ingress。
2、查看镜像
docker images
3、运行镜像
docker run 镜像名
docker run 镜像名:Tag
docker run -it -d --name 要取的别名 -p: 镜像名:Tag /bin/bash
docker run -dit --privileged -p80:80 -p10250:8080 -p30000-30010:30000-30010 --name centos7.8-test changqing263/centos7.8-with_vim_and_yum:latest /usr/sbin/init
docker run 表示运行一个镜像
-dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了
--privileged参数时,容器内的root用户将拥有与宿主机上的root用户相同的能力。这包括但不限于:
1.访问宿主机的所有设备节点(如/dev下的设备文件)。
2.修改或加载内核模块。
3.挂载文件系统。
4.访问宿主机的某些受保护的文件
-p80:80 第一个80,表示在宿主机上开放21端口。 第二个80 表示在容器里开放80端口。 这样当访问CentOS 的80端口的时候,就会间接地访问到容器里了
-p10250:8080 和 80一个道理
-p30000-30010 和80也是一个道理
--name centos7.8-test 给容器取了个名字,叫做 centos7.8-test
changqing263/centos7.8-with_vim_and_yum:latest就是镜像的名称, latest是版本号,即最新版本
/usr/sbin/init就是给容器一个超级管理员root的权限,登入终端是有init负责的,这样才可以执行systecmctl service等命令。
4、查看容器
#查看所有的容器,包含停止和运行中的容器
docker ps -a
#只查看运行中的容器
docker ps
5、停止、启动、容器和删除容器
#停止、启动容器,可通过容器名或容器id停止,可通过docker ps 查看
docker stop CONTAINER ID或NAMES
docker start CONTAINER ID或NAMES
#删除容器(只能删除停止的容器,如未停止,需要先停止容器)
docker rm CONTAINER ID或NAMES
##如果想强制删除容器(可以删除运行中的容器)
docker rm -f CONTAINER ID或NAMES
6、进入容器
#进入容器
docker exec -it 容器名/容器ID /bin/bash
#进入 前面的 redisText 容器
docker exec -it nginx /bin/bash
7、删除镜像
docker rmi 镜像名或镜像id
8、保存镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
docker save bitnami/nginx:latest -o /tmp/nginx.tar
9、加载镜像
docker load -i 镜像保存文件位置
例如:docker load -i /tmp/nginx.tar
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
#在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。
10、镜像标签
在工作中有开发环境、测试环境、生产环境以及版本迭代,就可以利用标签来进行区分
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
# 如果省略TAG 则会为镜像默认打上latest TAG
docker tag wait59/centos7.8:v1 changqing263/centos7.8:v1
11、制作镜像
#保存当前正在运行的容器,将其制作为新镜像
docker commit -m="描述信息" -a="作者" 容器id或容器名 目标镜像名: [TAG]
12、镜像上传
#推送到docker的公共仓库
登录镜像仓库
docker login my.private.registry.com
#如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout : 登出
#使用令牌登录
docker login -u username -p password_or_token my.private.registry.com
#上传镜像到仓库
docker push 用户名/镜像名
例如: docker push changqing263/nginx:v2,会将本地的changqing263/nginx:v2镜像上传到docker hub官网的个人仓库中。
如上传docker官网,,可通过如下解决docker官网无法上传和下载镜像的问题: