下载docker
linux下载
get.docker.com 里面写了很多docker的shell命令
直接使用 curl -fsSL get.docker.com -o get-docker.sh
会把这个内容下载下来变成一个 get-docker.sh的一个脚本文件
输入 sudo sh get-docker.sh
就会开始安装docker
查看是否安装成功:docker version 出现对应的版本号就是安装成功了
启动docker服务:
sudo systemctl start docker
如果docker启动之后 再次输入 docker version 会出现更多详细的docker信息 里面包含了docker的使用信息 会有客户端和服务端的两个
docker 创建容器和操作容器的相关命令
a 什么是镜像?
镜像是包含了os文件系统和应用的对象 类似虚拟机的模板
比如windows10 是一个镜像 windows7也是一个镜像
开发角度: 镜像是面向对象中的只读类 不能改写
b 什么是容器?
容器几乎和镜像是一摸一样的
区别是镜像是只读的 但是容器是 read-write layer
容器 = 镜像+读写层
# 创建容器的命令(确保docker服务已经启动)
# 例:创建一个nignx服务
docker container run nignx
# 如果第一次docker创建一个镜像的话
# 它会先去docker 的 hurb上拉取一个nginx的镜像到本地
# 执行shell 脚本 脚本会把镜像自动安装到docker里面
docker run nignx # 这个语句的效果和上面一致,是上面语句的缩写
- 这里不建议使用缩写方法,是为了在后期学镜像相关知识的时候将镜像操作语句和容器操作语句分开(多敲一个container也就一秒钟 不要偷懒hahahaha)
Ps : 什么是docker Hub 这是官方的docker镜像库 很多写好的库可以直接在这里使用 就相当于一个docker社区 你也可以自己写镜像上传给别人用
# 查看有什么镜像:
docker container ls
docker container ps
# 这两个语句都可以显示已经运行的镜像
# 查看所有安装了的镜像
docker container ps -a
docker container ls -a
# 在这个命令上 container这个单词可以省略 比如
docker ps -a
# 这里注意 docker ls -a 是错误用法 ls 是新出炉的语句 暂时不支持简写
启动服务并查看所有的镜像文件 显示内容如下
我们可以看到这里有几个字段,在后续的删除操作中,需要使用的字段一般都是ID(使用image名也可以进行操作,但是用ID可以精准对位操作)
# 显示开启的镜像的时候 会有一栏id 的内容 如果需要停止服务只需要使用id就行了
Docker container stop + id
# 删除容器
docker container rm +id
docker 多容器操作和强制删除的方法
多个机器启动docker服务 并run3个nignx
如何同时停止这三个nignx 服务呢?
直接使用 docker container stop id1 id2 id3
便可以做到
那如果有100个呢?
docker container ps -ap
# 这个命令可以将所有的docker容器的id给输出出来
docker container stop $(docker container ps -ap)
# 将所有docker启动的容器全部停止
docker container ps -a
# 可以发现所有的容器都已经停了
# 删除容器 多容器的删除
docker container rm $(docker container ps -ap)
# 删除容器前 要先停止 再进行删除 但是也可以进行强制删除
docker container rm id -f # 就可以将它强制删除
docker 端口的映射和主动、被动模式
做一个nignx 的端口
docker container run -p 80:80 nginx
这里的80:80 前面一个是对应的服务器端口,也就是其他人可以通过这个端口来访问对应的docker容器的服务 后面的 80 对应的是容器的端口 这里做一个端口的映射 这里可以我们自己来进行设置
通过上述方式run 启动的都就都是前台启动模式 也就是attach模式 可以直接在终端进行操作 按下ctrl + c就会被强制停止了 如何启动detach模式(后台运行模式)呢?
Docker container run -p a:b nignx -- detach
Docker container run -d -p a:b nignx 就可以了
它不会再返回日志了 而是返回一个id号 这样就算是你把终端关掉 它也依然可以继续访问你启动的服务 会在你的后台持续运行
如何把后台运行模式调整成前台运行模式
Docker attach id 就可以变成前台运行模式了
Detach 模式下如何查看日志?
Docker container logs + id
日志跟踪
Docker container -f logs +id