需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。
目录
一、镜像仓库架构图
二、docker仓库命令
1、登录仓库docker login
2、拉取镜像docker pull
3、推送镜像docker push
4、查找镜像docker search
5、登出仓库docker logout
三、docker镜像命令
1、列出本地镜像docker images
2、查看镜像详细信息docker image inspect
3、标记本地镜像,将其归入某一仓库docker tag
4、删除镜像docker rmi/删除容器docker rm
5、将指定的镜像打包成tar文件docker save
6、将docker save的tar包还原回来docker load
7、显示镜像历史docker history
8、删除不使用的镜像docker image prune
四、容器命令
1、创建一个新容器并运行一个命令docker run/创建一个新容器但不运行docker create(命令和docker run一样,docker run多一个-d选项)
-i、-t、-d选项:-it搭配使用,-d后台运行
-p选项:指定端口映射
--name选项:在容器启动时为它取一个名字
--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行
-m :设置容器使用内存最大值(示例为500m)
--link=[]: 添加链接到另一个容器,让两个容器能相互访问
--rm :shell 退出的时候自动删除容器
2、列出容器docker ps
3、查看容器日志docker logs
4、将当前终端连接到正在运行的某个Docker容器的标准输入、输出和错误docker attach
5、在容器中执行命令docker exec
6、将停止的容器重新启动docker start/将运行的容器停止docker stop
7、重启容器docker restart
8、强制退出容器docker kill
9、查看容器中运行的进程信息docker top
10、显示容器资源的使用情况docker stats
11、查看容器详细信息docker container inspect
12、查看指定容器所对外映射端口docker port
13、在容器和宿主机之间拷贝文件docker cp
14、 检查容器中文件结构的更改docker diff
15、从容器中创建一个新的自定义镜像docker commit
16、暂停/取消暂停容器中的所有进程docker pause/docker unpause
17、导出容器内容为tar包docker export/将导出的tar包还原为镜像docker import
18、阻塞运行直到容器停止,并打印退出码docker wait
19、容器重命名docker rename
20、删除所有停止的容器docker container prune
21、更新容器配置docker update
五、nginx
六、busybox
镜像仓库:存放镜像的仓库,每个镜像仓库包含多个tag标签
tag标签:每个标签对应一个镜像
docker指南:Docker Docs
docker官方仓库:https://hub.docker.com/
命令
别名
功能
docker login
登录仓库
docker pull
docker image pull
拉取镜像
docker push
docker image push
推送镜像
docker search
查找镜像
docker logout
登出仓库
从镜像仓库拉取或更新指定镜像
一般去hub.docker.com网站里找,较少使用命令。
比如启动nginx容器,就可以通过该命令查看nginx的启动方式(Cmd字段)和端口(ExposedPorts字段)
和docker push配合使用
两台服务器之间通过ssh传输文件scp myfile root@xxx.xxx.xxx.xxx:/filepath
docker history显示每个层(layer)的创建者、创建时间、大小等信息。
也可以加-a选项,将会清理所有不使用的镜像。
docker image prune命令可以删除以下类型的镜像
- 悬挂的镜像(dangling images): 这些是没有与任何容器关联的镜像,可能是之前构建的中间层镜像,或者由于某些原因没有被正确标记的镜像。
- 未被使用的本地镜像: 如果某个镜像没有被任何容器使用,它被认为是未被使用的。
这个命令的目的是为了清理系统中不再需要的镜像,以节省磁盘空间。在使用之前,需要确保没有重要的镜像会被删除,因为这个命令是不可逆的。
这个命令和docker rmi的区别在于docker rmi更倾向于手动删除某个镜像。
○ -d: 后台运行容器,并返回容器 ID;
○ -i: 以交互模式运行容器,通常与 -t 同时使用;
○ -P: 随机端口映射,容器内部端口随机映射到主机的端口
○ -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
○ -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
○ --name="nginx-lb": 为容器指定一个名称;
○ -h "mars": 指定容器的 hostname;
○ -e username="ritchie": 设置环境变量;
○ --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
○ -m :设置容器使用内存最大值;
○ --network="bridge": 指定容器的网络连接类型;
○ --link=[]: 添加链接到另一个容器;
○ --volume , -v: 绑定一个卷
○ --rm :shell 退出的时候自动删除容器
-i、-t、-d选项:-it搭配使用,-d后台运行
-p选项:指定端口映射
如果没有用-p将端口映射出来:sudo docker run -d nginx:1.23.4-perl,外部浏览器是访问不到容器的nginx的端口的。
当然也可以用sudo docker run -d -P nginx:1.23.4-perl来随机映射端口sudo docker ps查看随机分配的端口。
--name选项:在容器启动时为它取一个名字
--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行
-m :设置容器使用内存最大值(示例为500m)
--link=[]: 添加链接到另一个容器,让两个容器能相互访问
--rm :shell 退出的时候自动删除容器
带--rm,退出后并不会留下记录:
关键参数:
--sig-proxy:是否将所有信号代理,默认是true(退出将导致容器退出),若设置为false,则不会影响容器。
连接容器后将会接管该容器的标准输入、标准输出、标准错误,所以网页端一刷新,终端立马接收到相关log信息。若按下ctrl+c,该容器将会退出:
如果在退出时不想退出容器,则需要加上--sig-proxy=false将信号代理:
○ -d: 分离模式,在后台运行;
○ -i: 以交互模式运行容器,通常与 -t 同时使用;
○ -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
○ -e:设置环境变量;
○ -u/--user: 指定用户来执行命令
○ -w/--workdir:指定工作目录
它可以重启运行、停止甚至已退出的容器。
docker stop发送温柔的SIGTERM信号,docker kill发送暴力的SIGKILL信号。
例如有些容器如Nginx中就没有ps命令,要查看容器的进程信息就需要用docker top
C:修改过;A:新增;D:删除
○ -a: 提交的镜像作者;
○ -c: 使用Dockerfile指令创建镜像,可以修改启动指令;
○ -m: 提交时的说明文字;
○ -p:在commit时,将容器暂停。
每次commit,生成的镜像会保存当前容器的一些修改。
通过剥夺容器进程的时间片来暂停进程。
docker export命令仅导出容器的文件系统,不包括容器的元数据(例如标签、端口映射、卷等)或容器的运行状态。如果还原时需要这些信息,使用docker save/docker load来保存还原。
○ --cpus: cpu数量;
○ --cpuset-cpus: 使用哪几个cpu;
○ -m/--memory: 内存限制;
○ --memory-swap:交换内存;
○ --cpu-period:用来指定容器对cpu的使用要在多长时间做一次重新分配;
○ --cpu-quota:用来指定这个周期内,最多可以有多少时间跑这个容器。
命令安装:
使用docker安装: