美文网首页
Docker学习

Docker学习

作者: AI科技智库 | 来源:发表于2020-03-04 10:07 被阅读0次

1 Docker指令

  • docker info 查看docker信息
  • docker run 创建一个docker容器
  • docker ps 查看正在运行的docker容器
  • docker ps -a 查看正在运行和停止的docker容器
  • docker run 通过镜像创建并启动一个容器
  • docker run -p 127.0.0.1:80:80 nginx 将本机127.0.0.1:80映射到容器的80端口
  • docker start 启动容器
  • docker exec -it webserver bash 以交互终端方式进入容器
  • docker diff webserver 查看容器的改动
  • docker attach 重新附着到容器的回话上
  • docker logs 获取容器的日志
  • docker top 查看容器内的进程
  • docker stop 停止某个容器
  • docker rm 删除某个容器
  • docker rm `docker ps -a -q` 删除所有的容器
  • docker images 列出镜像
  • docker pull ubuntu:12.04 拉取镜像(REPOSITORY:TAG)
  • docker search 查找所有Docker Hub上公共的可用镜像
  • docker rmi 删除镜像
  • docker image prune 清楚虚悬镜像
  • docker export 7691a814370e > ubuntu.tar 导出镜像
  • cat ubuntu.tar | docker import - test/ubuntu:v1.0 导入镜像
  • docker inspect CONTAINE_ID | grep IPAddress 查询容器的IP地址
  • docker save spring-boot-docker -o spring-boot-docker.tar 保存镜像
  • docker load -i spring-boot-docker.tar 加载镜像
  • docker export ID >xxx.tar 保存容器
  • docker import xxx.tar containr:v1 加载容器

2 dockerfile debain和pip替换国内镜像源

2.1 debain使用国内镜像源

dockerfile中添加

COPY sources.list /etc/apt/

dockerfile目录中创建sources.list,并添加

deb http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib

2.2 pip添加国内镜像源

dockerfile中添加

COPY pip.conf /etc/pip.conf

dockerfile目录中创建pip.conf,并添加

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 

2.3 npm添加国内镜像源

dockerfile中添加

RUN npm config set registry https://registry.npm.taobao.org
RUN npm install

3 dockerfile指令

FROM

Docker基础镜像的来源,尽可能使用当前官方仓库作为你构建镜像的基础

RUN

RUN 指令最常见的用法是安装包用的 apt-get,apt-get update 和 apt-get install 被放在一个 RUN 指令中执行,这样能够保证每次安装的是最新的包。如果 apt-get install 在单独的 RUN 中执行,则会使用 apt-get update 创建的镜像层,而这一层可能是很久以前缓存的。

RUN apt-get update && apt-get install -y \
                        package-bar \
                        package-baz \
                        package-foo

CMD

CMD 指令用于执行目标镜像中包含的软件

CMD ["executable", "param1", "param2"...]

EXPOSE

EXPOSE 指令用于指定容器将要监听的端口

EXPOSE 80

ENV

可以使用 ENV 来为容器中安装的程序更新 PATH 环境变量

ENV PATH /usr/local/nginx/bin:$PATH

ADD 和 COPY

虽然 ADD 和 COPY 功能类似,但一般优先使用 COPY 。因为它比 ADD 更透
明。 COPY 只支持简单将本地文件拷贝到容器中,而 ADD 有一些并不明显的功
能(比如本地 tar 提取和远程 URL 支持)。因此, ADD 的最佳用例是将本地 tar
文件自动提取到镜像中,例如

ADD rootfs.tar.xz 
COPY requirements.txt /tmp/

ENTRYPOINT

ENTRYPOINT 的最佳用处是设置镜像的主命令

WORKDIR

WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行

WORKDIR /mydir
CMD ["more" ,"test.txt"]

4 docker compose分配资源

redis服务被限制为使用不超过50M的内存和0.50(不超过单个内核的50%)可用处理时间(CPU),并且具有保留20M的内存和0.25CPU时间(始终可用)。

version: "3.7"
services:
  redis:
    image: redis:alpine
    deploy:
      resources:
        # 设置容器的资源限制
        limits:
          cpus: '0.50'
          memory: 50M
        #设置为容器预留的系统资源(随时可用)
        reservations:
          cpus: '0.25'
          memory: 20M

相关文章

网友评论

      本文标题:Docker学习

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