Docker的学习记录

2022-08-11 19:12:14 浏览数 (1)

1.首先下载Docker (这里以windows 桌面版为例)

https://www.runoob.com/docker/windows-docker-install.html

2.下载docker后的命令操作

2.1.创建一个镜像(拉取)

docker pull nginx

2.2.查看在进程中的镜像

docker ps

2.3.查看所有的镜像

docker images

2.4.启动镜像

docker run -d -p 80:80 nginx (-d为不阻塞当前的进程,在后台执行,-p为端口配置 80外 :80内)

2.5.进入镜像(修改环境)

docker exec -it {{IMAGE_ID}} bash

2.6.退出镜像环境

exit 

2.7.强制删除docker 容器和镜像

docker rm -f {{IMAGE_ID}}

docker rmi -f {{IMAGE_ID}}

2.8.复制镜像

docker commit {{IMAGE_ID}} {{NEW_IMAGE_NAME }}

2.9.liunx修改文件内容 

echo hello > index.html >表示覆盖 >>表示追加

3.Dockerfile基础配置以及构建

基础的文件目录为下图:

配置:

FROM 必须,镜像源 eg: FROM alpine

WORKDIR :非必须,指定当下的shell语句运行在哪个目录下,如果没有则自动创建 eg: WORKDIR /app

COPY : 复制 eg: COPY src/ /app   (src为复制源的当前目录 /app 为复制目标的目录,中间有空格)

ADD:添加 eg: ADD src/ /app (跟COPY的区别在于源地址不仅可以文件路径也可以是URL )

RUN : 执行shell 语句 eg: RUN echo 321 >> 1.text 

CMD :执行shell语句 eg: CMD tail -f 1.text (tail -f 阻塞式) eg2:CMD cat 1.text

EXPOSE:指定暴漏端口

VOLUME: 指定映射到宿主机的目录下 eg:VOLUME /a/b

ENV:指定当前环境变量 eg: ENV A=10  输出: echo $A

ARG:环境变量(跟ENV的区别是ARG只在构建的时候有效(docker build),构建完成后,再执行就无效了,ENV一直有效)

在构建时可以使用 docker build -t test --biuld-arg A=10 . 来传递初始的全局变量 

LABEL:指定一些源数据信息以 key="value"的形式,起到标实作用 eg:LABEL k="v" k1="v1"

ONBUILD:当前镜像构建的时候不会执行,基础当前的镜像的镜像构建的时候才会执行

SHELL :指定SHELL 一般指cmd和shell的切换 eg: SHELL /bin/sh (liunx) eg2:SHELL cmd (windows)

USER:用于指定RUN CMD等指令运行时的用户身份,不指定是root eg:USER node 

另附:RUN和CMD区别:

两者都是用于执行命令,区别在于执行命令的时机不同,RUN命令适用于在 docker build 构建docker镜像时执行的命令,

而CMD命令是在 docker run 执行docker镜像构建容器时使用,可以动态的覆盖CMD执行的命令。

基础的Dockerfile文件

FROM alpine

WORKDIR /app

RUN echo 321 >> 1.text

CMD cat 1.text

构建:docker build -t test .  (-t意思为命名镜像,. 意思为Dockerfile在当前的目录下,可以理解为Dockerfile的位置)

参考视频:https://www.bilibili.com/video/BV1k7411B7QL

https://www.bilibili.com/video/BV1R4411F7t9

总结:两个准备 先下载docker 后写Dockerfile 两个命令 先build 后run

build:

代码语言:javascript复制
docker build -t test .

构建完之后可以 通过docker images 来查看是否创建镜像成功了

run:

代码语言:javascript复制
docker run test

0 人点赞