美文网首页
Docker 基础命令

Docker 基础命令

作者: 沈哲培 | 来源:发表于2018-10-15 18:05 被阅读0次

基础

启动容器

docker run -d -t -p 8000:5000 --name demo ubuntu:18.04

  • run 表示启动一个新的 Docker 容器
  • -d 的意思是让容易在后台运行
  • -t 用于让一个空白的ubuntu镜像在后台运行
  • -p 用于指定端口映射,表示在访问本机的8000会被转到容器的5000
  • --name XXX 指定了容器的名字是 demo
    ubuntu:18.04 是启动容器使用的镜像名, Docker 会自动去镜像服务器去下载这个镜像`

解决端口或容器名被占用的方案

docker rm -f XXX 端口占用时需要加 -f 表示强制删除正在运行的容器,名字占用时不用加

控制容器

docker exec CONTAINER COMMAND

复制数据到容器

docker cp FILE "CONTAINER:PATH"

常用操作

  • docker start XXX 启动容器
  • docker ps 查看运行的容器, -a 可以查看所有容器
  • docker stop XXX 停止容器
  • docker rm -f XXX 停止

镜像

Dockerfile(附录: Dockerfile Sample)

  • # 注释
  • FROM 指定源镜像 ->FROM ubuntu:18.04
  • RUN 构建时在镜像中执行的命令 -> RUN apt update
  • COPY 复制,会自动创建不存在的目录 -> COPY app.py /code/app.py
  • WORKDIR 用于指定工作目录 -> WORKDIR /code
  • CMD 启动脚本 -> CMD ["python3", "app.py"]

构建镜像

  • docker build -t XXX .,最后有一个.用来指定构建镜像时的目录为本机当前目录
  • docker images, 查看本机存储的镜像
  • docker run -p 8001:5000 --name demo2 webimage

服务器 Docker 部署

  • 准备三个文件放于 app 目录下( 附录: install-docker.sh )
    • install-docker.sh 在 Ubuntu 服务器安装 Docker 的脚本
    • Dockerfile
    • app.py web程序
  • 使用 scp -r app ubuntu@ip:/tmp 把文件夹上传到服务器
  • sh /tmp/app/install-docker.sh 安装 docker
  • sudo docker build -t webimage . 打包
  • sudo docker run -d -p 8000:5000 --name server webimage

数据卷

  • docker volume create XXX 创建数据卷
  • docker volume ls 列出所有数据卷
  • docker volume rm XXX 删除某个数据卷
  • docker run的时候添加--mount source=XXX,target=/volume 使用数据卷

共享目录

  • 运行一个使用共享目录的 nginx 容器:
  • --mount type=bind, source="${PWD}",target=/usr/share/nginx/html/
  • "${PWD}" 跨平台的绝对路径获取方式,加引号防空格
  • 也可以通过指定文件的方式挂载单文件:
  • --mount type=bind, source="${PWD}/index.html",target=/usr/share/nginx/html/ test.html
  • 也可以通过多个--mount 参数挂载多个文件

多容器交互: Compose

Dockerfile Sample:

# 在 Dockerfile 文件中 # 是注释
# FROM 用于指定构建镜像使用的基础镜像
FROM ubuntu:18.04

# RUN 用于在构建镜像的时候在镜像中执行命令
# 这里我们安装 python3 和 flask web 框架
RUN apt update
RUN apt -y install python3 python3-pip
RUN pip3 install flask

# COPY 相当于命令的 docker cp
# 把本机当前目录下的 app.py 文件拷贝到镜像的 /code/app.py
# 和 docker cp 不同的是,COPY 会自动创建镜像中不存在的目录,比如 /code
COPY app.py /code/app.py

# WORKDIR 用于指定从镜像启动的容器内的工作目录
WORKDIR /code

# CMD 用于指定容器运行后要执行的命令和参数列表
# 这样从本镜像启动容器后会自动执行 python3 app.py 这个命令

# 由于我们已经用 WORKDIR 指定了容器的工作目录
# 所以下面的命令都是在 /code 下执行的
CMD ["python3", "app.py"]

# 你可能会看到有资料介绍一个 ENTRYPOINT 参数用于指定容器运行后的入口程序
# 但是这个参数在现在的意义已经很小了,请忽略之

install-docker.sh Sample:

# 官方安装指南 Ubuntu 版本
# https://docs.docker.com/install/linux/docker-ce/ubuntu

sudo apt update

# docker 的源是 https,所以安装这些软件用于支持 https 的 apt 仓库
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加 Docker 的官方 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 设置官方 Docker 源
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装 Docker
sudo apt update
sudo apt install -y docker-ce

# 如果你想验证 Docker 安装好了,可以运行一个 hello-world 容器
# sudo docker run hello-world

相关文章

  • dokcer命令帮助手册

    基础命令 docker version docker help docker info 镜像命令 docker i...

  • docker 命令

    一、Docker的基础命令 二、docker网络管理相关的命令: docker run 命令参数 三、docker...

  • docker base command

    docker(base command) docker 基础命令

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • centos下docker基本命令

    docker基础命令 docker服务开启/关闭 service docker start/stop镜像搜索 ...

  • docker 常用基础命令

    Docker基础命令查看docker版本信息$ docker --version 查看docker安装信息$ do...

  • 使用Docker分布式部署爬虫系统Pyspider

    阅读准备 docker基础命令,docker-compose基础 pyspider基础 如果您不熟悉上面的内容,可...

  • docker 减少打包镜像体积

    docker 减少打包镜像体积 dockerfile 基础命令 FROM 指定基础镜像 RUN 执行命令shell...

  • docker入门

    Docker基础命令学习及redis集群搭建 本堂课内容 一、Docker 入门 Docker是什么? Docke...

  • docker学习第三天

    今天主要学习docker的基础命令,启动,关闭,查看版本,帮助文档。以及重要的docker镜像命令. 重启dock...

网友评论

      本文标题:Docker 基础命令

      本文链接:https://www.haomeiwen.com/subject/hccqzftx.html