一、远程仓库
1、官方仓库:https://hub.docker.com/
2、可以下载官方或他人上传的镜像,也可以上传自己制作的镜像。
3、更改国内源:
①vi /etc/docker/daemon.json
②{
...
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
...
}
二、镜像操作
1、镜像的本质:就是一些既定的文件,这些文件通过docker跑起来,就是容器,就像在操作系统之上跑着进程。
2、查找镜像
①在官网查找:https://hub.docker.com/
②docker search
3、拉取镜像
①不注明版本默认最新版latest:docker pull hello-world
②注明版本:docker pull hello-world:nanoserver
4、查看本机有哪些镜像:docker images(等同于:docker image ls)
REPOSITORY TAG IMAGE ID CREATED SIZE
镜像名字 版本 id号 创建时间 大小
5、删除镜像:docker rmi 镜像名字/id号(等同于:docker image rm 镜像名字/id号)
如果还有基于这个镜像的容器,是不允许删除镜像的,需要先删除容器,再删除镜像
6、查看镜像信息:docker image inspect 46ff56815c7c
三、容器操作:
1、删除容器:docker rm 容器名字/容器id
2、启动并运行容器:docker run -di --name=mycentos centos:centos7
通过centos:centos7镜像,创建一个容器名字叫mycentos,并且把它运行起来,会打印出容器的id号
如果指定的是本地没有的镜像,会先pull镜像,再run
3、查看本机正在运行的容器:docker ps
4、查看本机所有容器(包括停止的):docker ps -a
5、停止容器:docker stop 容器名字/id号
6、启动容器:docker start 容器id/名字
7、容器的创建与启动:
①创建:docker create --name=xxx redis
docker create --name=test-container centos:centos7 ps -A
②启动:docker start test-container
③容器保持运行的机制:
该容器有一条前台进程,直在运行
自己制作的镜像,想要运行起容器,必须要有一个可以挂起的命令,该命令结束,容器也就停止了
④可选参数:
-i:表示运行容器。
-t:表示容器启动后会进入其命令行,加入该参数后,容器创建的同时就会登录进去,相当于分配一个伪终端。
-d:加入该参数后,容器创建的同时会在容器内部创建一个守护进程使容器在后台运行。
--name:为创建的容器命名,如果不写,会自动分配一个英文名称。
-v:表示目录映射关系,前者是宿主机目录,后者是容器目录,映射到宿主机上的目录,可以使用多个-v做多个目录或文件映射。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射。
8、操作容器的方式:
①docker exec 容器id ls:通过exec在容器内执行命令
②docker exec -it 容器id /bin/bash:通过exec在容器内打开bash窗口
③容器内部装好ssh服务端,再通过ssh连接进去
9、退出容器:exit
10、文件拷贝:
①从本机拷贝到容器内部:docker cp aaa.txt 容器id:/home
②从容器内部拷贝到本机:docker cp 容器id:/home/aaa.txt /app
11、目录映射:docker run -di --name=mycentos99 -v /home/lqz:/home centos:centos7
一旦挂载,本机与容器内的目录操作,都会同步影响
12、端口映射:docker run -di -p 6377:6379 redis:latest
13、查看容器详情:docker inspect f81
查看容器ip地址:docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/容器ID