Docker极简

2022-12-23  本文已影响0人  赤色要塞满了

下载镜像

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>镜像
上一篇 下一篇

猜你喜欢

热点阅读