docker基础操作

docker基础

Docker是一个容器化平台,以容器的形式将应用程序和所有依赖项打包在一起,以确保你的应用程序在任何环境中无缝运行。
docker基础操作_第1张图片
docker基础操作_第2张图片

docker基础操作_第3张图片

  1. 镜像:是一个只读的模板,用来创建Docker容器
  2. 容器:包括应用程序和所有依赖项(包括os),作为操作系统的进程独立运行。每个容器都是相互隔离的。可以把容器看做是一个简易版的linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
  3. 仓库:存放镜像的一个场所,仓库分为公开仓库和私有仓库。 最大的公开仓库是Docker hub,国内公开仓库hub。

安装docker

sudo apt install docker.io

基于Dockerfile创建容器

docker build -t dkcar:v3 .

# Dockerfile 的指令每执行一次都会在 docker 上新建一层。

# 基础镜像
FROM python3.7 

# RUN 执行命令两种格式 shell 格式/exec格式:RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
RUN pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN ["./test.php", "dev", "offline"]

# COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
COPY ~/DDS_modules /app/

# ADD:和COPY类似,遇到压缩包,会解压到指定目录
ADD . /app/

# CMD 与 RUN 类似,CMD在docker运行时执行,RUN在docker创建时执行,只有最后一个RUN命令被执行
CMD ["python", "manager.py", "drive", "--js"]

# ENTRYPOINT
ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参 

指定镜像创建容器

docker run -i -t --name gwm_container dk:v1 /bin/bash

容器与宿主机拷贝文件

 sudo docker cp ai_pilot_drive.py afc4877bf64e:/app/DDS_modules/autodrive

提交容器为镜像

docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 

镜像的保存与加载

 docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
 docker load < my_ubuntu_v3.tar

容器的导出与导入

# 导出
sudo docker export afc4877bf64e -o dk_test.tar
# 导入
 sudo docker import dk_test.tar dk_test:v1

docker容器的状态

四种状态:运行、已停止、重新启动、已退出

容器的启动、停止

docker start afc4877bf64e
docker exec -it afc4877bf64e /bin/bash
docker stop afc4877bf64e

容器与硬件设备的映射

docker run -it --privileged mydk:v1 /bin/bash
docker run -it --device=/dev/i2c-1 /bin/bash

Docker常用命令

Column 1 Column 2
docker pull 拉取或更新指定的镜像
docker push 将镜像推送到远程仓库
docker images 列出所有镜像
docker ps (-a) 列出所有(运行中)容器
docker rm 删除容器
docker rmi 删除镜像

你可能感兴趣的:(docker)