Docker基础命令
建立容器
共享到云
持久化DB
使用binder挂载
Dockerfile
Docker CLI
1 2 3 4 5 6 7 8
| ``` ---
```bash docker build -t getting-started . docker run -dp 127.0.0.1:3000:3000 getting-started docker ps
|
移除容器
1 2 3
| docker ps docker stop <id> docker rm <id>
|
共享到云(DockerHub)
- Create Repository,make Visibility Public
- Login ,
docker -u USERNAME
- 为Image指定新名称
docker tag getting-started YOUR-USER-NAME/getting-started
- push
docker push YOUR-USER-NAME/getting-started
持久化DB
1 2 3
| docker volume create db docker run -dp 127.0.0.1:3000:3000 --mount type=volume,src=db,target=/etc/todos getting-started docker volume inspect
|
使用bind挂载
1
| docker run -it --mount type=bind,src="$(pwd)",target=/src ubuntu bash
|
多容器(略过)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ```
- 创建镜像``docker commit <container_id> my-custom-image:version` - 复制数据到宿主机`docker cp <container_id>:/path/in/container /path/on/host` - 将镜像保存到本地`docker save -o my-custom-image.tar my-custom-image:version`
---
- 解释器指令 , 不支持续行符 , 形式` - syntax - escape 设置转义字符, 包括行中字符和换行符,注意,RUN命令的行中永远不会执行转义 - 空行,注释( - 构建器指令 - 环境变量 `ENV VARNAME=VALUE` , `ADD COPY ENV EXPOSE FROM LABEL STOPSIGNAL USER VOLUME WORKDIR ONBUILD`支持环境变量 ```Dockerfile ENV abc=hello ENV abc=bye def=$abc
|
- FROM指令
- `FROM [--platform=<platform>] <image> [AS <name>]`
- `FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]`
- `FROM [--platform=<platform>] <image>[@<digest>] [AS <name>]`
- FROM指令与ARG指令: FROM前可使用ARG定义变量,但若要在FROM后也使用该变量,需要在FROM后再声明一遍
- RUN指令
- `RUN <command>`
- `RUN ["executable", "param1", "param2"]` : 如果exectable不为shell,则不会进行shell变量替换
- `RUN --mount`
1 2 3 4
| ENV HOME=/HOME RUN echo $HOME RUN bash -c "echo $HOME" RUN ["/bin/bash" , "-c" , "echo $HOME"]
|
- SHELL指令,改变默认shell
1 2 3
| ENV HOME=/home/wangsf FROM ubuntu:22.04
|