architecture 镜像registry
dockerfile语法。。
通常不用root
docker vuild -t hello_docker
已读(内容比较多,还没详细记录想法)
dockerfile 也能创建新镜像
from 原始镜像:xx版本
maintainer 作者
cmd echo 'xx' //这就是镜像做的效果
本地虚拟机核心运行 daemon
客户端通过命令 docker build ,docker pull,docker run 来和 daemon 交互
最右边则是互联网上资源,通过 registry 来拖取 images
------------------
docker run xx
如果本地没有这个镜像则会报错(unable to find image xx locally )
用查看本地所有镜像 docker images (也可能本地有,但是带有个路径,要加上路径才能执行)
用命令查看当前执行中的镜像 docker ps (看到container id)
演示如何把文件拷贝到 docker 容器
docker cp xx文件 容器id://路径/x
这个暂时改动,当容器停止后会还原,需要保存改动的话执行
docker commit -m '提保存的备注信息' 容器id 新容器名字
用 docker images 看到多了个 image
( 如果不加参数: 新容器名字 ,虽然容器多了一个,但是没有名字)
已读
在 linux 上安装 docker
sudo 把用户加到组,可在 linux 直接跑 docker 命令
已读,mac 上安装 docker 客户端
安装完毕后执行 docker info 查看执行状况
下载镜像:添加(注册)国内地址,加快下载
已读
已读
记录一下
这一章没学会
wget : 下载。
-q : 不让wget输出那么多。
O- : 将wget的输出直接输出到标准输出,而不是输出到文件
url
| : 管道,把输出交给后面的shell程序
sh : shell
镜像分层
Dockerfile中的每一行都产生一个新层
Dockerfile
FROM ubuntu MAINTAINER me@hazyzh.com RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nginx COPY index.html /var/www/html ENTRYPOINT ["usr/sbin/nginx", "-g", "daemon off;"] EXPOSE 80
Dockerfile 文件
编写简单的文件自创docker镜像
FROM alpine:latest #使用的基础镜像 MAINTAINER xbf #谁写的 CMD echo 'hello decker' #运行一个命令
通过Dockerfile构建image
docker build -t hello_docker . (-t:给个标签,名字叫hello_docker;'.':路径名,把路径下所有内容送给docker engine).
docker 架构
docker 命令:
#docker ps 查看docker进程
#docker run -p 8080:80 -d nginx 启动nginx服务
#docker stop 容器ID 停止服务
#docker cp index.html 177sdafdikdffdd://usr/share/nginx/html 替换网页
#docker commit -m 'fun' 容器ID nginx-fun 保存改动生成一个新的镜像
#docker images 查看已有镜像
#docker rmi 镜像id 根据镜像ID删除镜像
#docker ps -a 查看所有运行过的镜像
#docker rm 镜像ID 删除镜像
#docker pull 获取镜像
#docker build 创建镜像
docker在容器内的更改都是暂时的
docker widows 安装
docker linux安装
什么是Docker
dockers是一个开源的项目,允许应用及其依赖打包、发布和运行,以轻量级方式。 可以理解为轻量级虚拟机。
但是docker不是虚拟机, 虚拟机在宿主os上有一层叫hypervisor的虚拟层,虚拟硬件,在硬件上创建完全独立的GuestOS,在GuestOS运行各种程序。
Docker有一层Docker Engine层,利用下方HostOS的namespace,controlgroup来运行应用。
```sh
# $ curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-darwin-aarch64 > /usr/local/bin/docker-compose ❌
# $ curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-darwin-x86_64 > /usr/local/bin/docker-compose ✅
# 动态生成对应的系统架构的下载版本 URL
# uname -s, uname -m
$ curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
```
> /usr/local/bin/docker-compose
重定向到 /usr/local/bin 全局命令下面
up
stop
rm
logs
ps
docker compose
.yml / .yaml
很好!
chmod a+x
chmod 755
chmod 777 === chmod +x
$ ls -l /usr/local/bin/docker-compose $ chmod a+x /usr/local/bin/docker-compose $ docker-compose --version
-$(uname -s)-$(uname -m)
```sh
➜ ~ uname
Darwin
➜ ~ uname -s
Darwin
➜ ~ uname -m
x86_64
➜ ~
```
docker compose