docker笔记

1、 创建一个新容器(不占用当前窗口):docker run -d –name 容器名字 镜像

2、 查看容器日志:docker logs 容器id

3、 进入容器内部:docker exec -it 容器 /bin/bash

4、 暴力删除容器:docker rm -f 容器id

5、 查看容器信息:docker inspect 容器id

6、 Docker三种数据挂载方式

A、 Volume :管理宿主机文件系统的一部分,命令:docker volume create 数据卷名字

该数据卷的地址由docker指定,如果dockers卸载了,该数据卷也不在了

Docker run -d –mount type=volume,source=数据卷,target=容器内部路径 容器名

B、 bind mounts(就是-v):可以存储在宿主机系统的任意位置,这种方式如果挂载文件夹,宿主机文件夹会覆盖容器内文件夹,一般用来挂载具体存在的文件

C、 tmpfs mounts:挂载存储在宿主机系统的内存中,不写入文件系统

7、 docker容器通信

A、  --link :docker run -d –name 容器名 –link 要连通的容器 镜像名

其实就是在hosts配置中增加一个映射

B、   容器都加入某一个网络,一般都使用bridge

--net :docker run -d -name 容器名 –net bridge 镜像名

C、   创建网络:docker network create 网络名(默认bridge)

8、 Dockerfile

A、 Docker build –no-cache -t 镜像名称:标签 .

--no-cache 表示不使用缓存,如果没这个命令,假设现在本地镜像仓库存在dockerfile里使用的镜像,那么就会引用已存在的镜像

“.” 指示dockerfile文件所在的路径

B、 Dockerignore

配合DOCKER_BUILDKIT=1使用,这是阿里开发的工具

DOCKER_BUILDKIT=1 Docker build –no-cache -t 镜像名称:标签 .

C、 --build-arg name=value 构建镜像时可以传参进dockerfile使用

D、Dockerfile文件命令

1、 ARG neme=默认值:构建镜像时从命令行传进来的参数,配合—build-arg使用

2、 ENV key=value:运行容器后可以使用该变量,配合docker run -e key=value使用

3、 RUN 命令:构建镜像时执行该命令,不是容器运行时运行命令

4、 CMD 命令:运行容器时执行该命令,dockerfile里如果有多个CMDM命令,以最后一个CMD为准

5、 ENTRYPOINT 命令:和CMD命令类似,都是指定容器的启动命令,不同之处在于ENTRYPOINT指定的命令无法被docker run携带的参数取代,反而docker run携带的参数被当做参数传递给ENTRYPOINT指令指定的命令

CMD指令可以为ENTRYPOINT指令设置默认参数,而且可以被docker run指定的参数覆盖

6、 EXPOSE 80/http:暴露端口

7、 COPY 宿主机docker上下文里的地址或文件 容器内地址

8、 ADD 跟COPY类似,但带有解压的功能

9、 WORKDIR 地址: 指定工作目录,若不存在自动创建,可作用与RUN CMD ENTRYPOINT

9、 Docker仓库

A、  registry:官方私有镜像仓库

B、   docker hub:公共镜像仓库

C、   harbor:企业级镜像仓库(推荐使用)

去github下载,解压、配置登录地址、用户名密码、安装。

用户使用时去docker配置文件把该地址添加进去,然后登录,就可以推送、拉取镜像

10、docker-compose(容器编排)

A、    version:”3.8”   docker-compose版本,与docker版本对应

B、    services:   要部署的服务,下面可以定义多个服务,下面第一级是服务名称

C、    image:使用指定镜像构建

D、   build:指定dockerfile所在文件夹的路径(可以是绝对路径,或者相对docker-compose.yml文件的路径)

E、     command:可以覆盖,容器启动后默认执行的命令,和dockerfile里的CMD类似

F、     depend_on:必须在某些服务部署完之后

G、    expose:暴露端口,但不映射到宿主机,只被连接的服务访问

H、   ports:映射端口信息 宿主机端口:容器端口,或者仅仅指定容器端口,宿主机将会随机选择端口

I、      extra_hosts:指定额外的host名称映射信息。会在启动后的服务容器中/etc/hosts文件中添加host映射信息

J、     alias:网络上此服务的别名

K、    docker-compose up:默认读取名为docker-compose.yml的文件,-f 指定其他文件名,-d 让应用后台启动

L、     docker-compose stop:停止compose应用相关的所有容器,但不会删除它们

M、  docker-compose rm:删除已停止的应用,会删除容器和网络,但不回删除数据卷和镜像

N、   docker-compose restart:重启,如果用户在停止应用后对其修改,那么修改的内容不会反映在重启后的应用中,需要重新部署应用才能生效

O、   docker-compose down:停止并删除运行中的compose应用,会删除容器和网络,但不回删除数据卷和镜像

11、docker swarm

A、 Swarm是Docker的一个编排工具,在之前我们只是在一台机器来进行docker的管理,但是有时容器并不一定都在一台主机上,如果是分布式的处于多台主机上,这时就可以借助于Swarm

B、 Manager节点:manager节点相当于对服务的创建和调度

初始化集群并创建一个manager节点:docker swarm init --advertise-addr=manager节点ip

C、 Worker节点:主要是运行容器服务,manager节点也是可以运行的容器的

该命令manager节点创建成功时会给(docker swarm join --token token值 192.168.0.108:2377)

D、docker service create –name 服务名 使用的镜像

创建一个服务,该服务可能有多个副本(多个副本组成集群),

E、  docker service scale demo=5

对demo服务进行扩容(新增副本)

F、  Docker stack:使用docker-compose.yml文件来部署服务,文件内可以有多个服务,每个服务可以有多个副本(创建的容器分布在不同机器上)

docker stack deploy 服务名称 --compose-file=docker-compose.yml

posted @ 2022-03-15 22:07  暗,伏!  阅读(62)  评论(0编辑  收藏  举报