Docker极简

下载镜像

docker pull ubuntu:18.04
docker run -it --rm ubuntu:18.04 bash # -it交互终端 --rm运行完了自动删除容器
docker image ls
docker image rm <IMAGE ID>/<REPO:TAG>

创建自己的镜像

编辑Dockerfile,注释忽略:

FROM python:3.8-slim-buster
WORKDIR /my/workdir/path
# 第1个点上下文,第2个点是WORKDIR
COPY . .
# RUN为创建时执行,如果多条,就用 \换行&&
RUN "pip3 install -r requirements.txt"
# CMD为运行时执行
CMD ["python3", "app.py"]

编译运行

从当前目录下找Dockerfile进行编译:

docker build -t my-app . # .代表上下文

运行:

docker run -p 80:5000 -d my-app
# 参数的顺序好像很重要,顺序不对有时候失败
docker container run -d --name qq-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mypwd mysql:5.7

其它命令:

docker ps -a
docker stop <container_id>
docker restart <container_id>
docker rm <container_id>
docker exec -it <container_id> /bin/bash # bash也行,比attach好
docker container prune # 清除所有停止的容器

挂载外部数据:

docker volume create outer-shared-data
# -d后台, -p指定将容器的5000暴露到宿主的80, -v挂载
docker run -dp 80:5000 -v outer-shared-data:/path/in/container my-docker

多个镜像组合

使用docker compose,先配置docker-compose.ymlbuild是自己编译,image是下载的:

version: "2"

services:
  web:
    build: .
    ports:
      - "80:5000"
  db:
    image: "mysql"
    environment:
      MYSQL_DATABASE: my-db
      MYSQL_ROOT_PASSWORD: my-secret
    volumes:
      - outer-shared-data:/var/lib/mysql

volumes:
  outer-shared-data:

然后运行:

docker compose up  -d # 可能需要安装命令, 与yaml一个目录
docker compose down # 停止并删除

其它

docker system df
docker image prune # 删除<none>镜像
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容