0
点赞
收藏
分享

微信扫一扫

Docker 常用命令操作

文风起武 2023-06-04 阅读 74

允许非 root 用户操作 docker

# 将当前用户添加到 docker 用户组
sudo usermod -aG docker $USER

注意修改完用户组之后需要重新登录才可以生效

一个简单 Flask 应用 Dockerfile 示例

FROM python:3.9.16-alpine

EXPOSE 80
WORKDIR /app

RUN apk update

COPY requirements.txt /app

RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install -r requirements.txt --no-cache-dir

COPY . .

CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0", "--port=80"]

创建 docker image 时排除特定文件

在项目根路径创建文件 .dockerignore, 效果类似 .gitignore. 例子:

.git
Dockerfile
.gitignore
.dockerignore
__pycache__/
venv/
README.md
instance/

构建 docker image

docker build -t image_name:latest .

启动 container

# 获取 image ID
docker images

# 以交互方式启动, 方便观察输出, Ctrl+C 将会停止容器
docker run -it -p 8000:80 [imageID]

# 以 daemon 后台启动
docker run -d -p 8000:80 [imageID]

连接运行中的 container

# 启动新的一个 shell 连接到运行中的容器, 退出 shell 不会停止容器
docker exec -it [containerID] /bin/sh

# 直连容器, 可以只管查看实时输出, Ctrl+C 会停止容器
docker attach [containerID]

导出 image 为文件

# 无压缩直接导出
docker save [imageID|imageName] -o xxxx.tar
# 用 gzip 压缩导出
docker save [imageID|imageName] | gzip > xxxx.tar.gz

导入 image 文件

docker load < xxxx.tar.gz
举报

相关推荐

0 条评论