docker基础入门安装以及常见命令(代码片段)

author author     2023-01-12     364

关键词:

1、docker 常见命令以及安装知识详解

  1. 1、docker 安装
    1、安装版本统一 :Docker version 18.03.0-ce, build 0520e24
    2、安装方式:使用docker repository 安装
    3、sudo apt-get update
    4、Install packages to allow apt to use a repository over HTTPS
    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
    5、Add Docker’s official GPG key:
    Sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    6、验证第五步是否成功
    sudo apt-key fingerprint 0EBFCD88
    7、添加docker仓库
    sudo add-apt-repository
    deb [arch=amd64] https://download.docker.com/linux/debian
    $(lsb_release -cs)
    Stable
    8、sudo apt-get update
    9、sudo apt-get install docker-ce默认安装的是最新版本的
    10、安装特定版本的docker
    apt-cache madison docker-ce 列出仓库中可用的版本
    sudo apt-get install docker-ce=<VERSION_STRING>
    例如:sudo apt-get install docker-ce=18.03.0~ce-0~debian
    11.添加docker阿里云镜像源
    注册阿里云账号--容器镜像服务器---镜像加速器
    sudo vim /etc/docker/daemon.json

    "registry-mirrors": ["https://0c95gedu.mirror.aliyuncs.com"]

1.2Dockerfile 的编写

什么是dockerfile ?
说白了:就是按特殊格式和顺序把镜像里面需要的东西列出来的文本文件,docker build 构建时会按照dockerfile一步步去执行相应的命令
技术分享图片

1.2.1 Dockerfile的常见命令

Dockerfile格式要求:
#Comment 注释信息
INSTRUCTION arguments 指令+参数

    Dockerfile注意点:
指令不区分大小写,然而,一般默认写成大写
Dockerfile中的指令会按照顺序执行
第一个非注释行,必须是’FROM’指令,指出基于哪个基础镜像

    ![](http://i2.51cto.com/images/blog/201810/27/1815ab9cb7f5215419b45ae17dd3b77f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

命令详解:
FROM:
FROM指令是最重的一个且必须为Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指定基准镜 像,后续的指令运行于此基准镜像所提供的运行环境

MAINTANIER (depracted)
功能:用于让Dockerfile制作者提供本人的详细信息
COPY
功能:用于从Docker主机复制文件至创建的新映像文件
COPY <src> …<dest> 或COPY [“<src>”,… “<dest>”]
说明:
1、<src>必须是build上下文中的路径,不能是其父目录中的文件
2、<dest>可以是绝对路径,如果是相对路径是相对worddir制定的工作目录
3、如果<src>是目录,则其内部文件或子目录会被递归复制,但<src>目录自身不会被复制如果指定了多个 <src> 或在<src>中使用了通配符,则<dest>必须是一个目录,且必须以/结尾
4、如果<dest>事先不存在,它将会被自动创建,这包括其父目录路径

ADD
功能:ADD指令类似于COPY指令,ADD支持使用TAR文件和URL路径

workdir
功能:用于为Dockerfile中所有的RUN、CMD、ENTRYPOINT、COPY和ADD指
定设定工作目录
说明:
1、在Dockerfile文件中,WORKDIR指令可出现多次,其路径也可以为相对
路径,不过,其是相对此前一个WORKDIR指令指定的路径
2、另外,WORKDIR也可调用由ENV指定义的变量
3、如果工作目录不存在,则Docker Daemon会自动创建
举例:WORKDIR /var/log WORKDIR nginx

EXPOSE
功能:用于为容器打开指定要监听的端口以实现与外部通信,暴露端口

ENV
功能:用于为镜像定义所需的环境变量,并可被Dockerfile文件中位于其后的其它指令
(如ENV、ADD、COPY等)所调用
ENV <key> <value> (一次只能定义一个变量)或ENV <key>=<value>(可以定义多个变量)

RUN
功能:用于指定docker build过程中运行的程序,其可以是任何命令
RUN <comand> 或RUN [“<excutable>”, <parm1>”, <parm2>”]

RUN buildDeps=‘gcc libc6-dev make‘
&& apt-get update
&& apt-get install -y $buildDeps
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz"
&& mkdir -p /usr/src/redis
&& tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
&& make -C /usr/src/redis
&& make -C /usr/src/redis install
&& rm -rf /var/lib/apt/lists/*
&& rm redis.tar.gz
&& rm -r /usr/src/redis
&& apt-get purge -y --auto-remove $buildDeps

FROM debian:jessie
RUN apt-get update
RUN apt-get install -y gcc libc6-dev make
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz"
RUN mkdir -p /usr/src/redis
RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
RUN make -C /usr/src/redis
RUN make -C /usr/src/redis install

CMD
作用:类似于RUN指令,CMD指令也可用于运行任何命令或应用程序,命令的时间点不同,一个是在docker build的时候,一个是在docker run的时候

CMD命令是容器启动时候的默认命令,

格式:
shell 格式:CMD <命令>
举例: CMD echo $HOME = CMD [ "sh", "-c", "echo $HOME" ]

exec 格式:CMD ["可执行文件", "参数1", "参数2"...]
举例 CMD ["echo","$HOME"]

参数列表格式:CMD ["参数1", "参数2"...]。在指定了 ENTRYPOINT 指令后,用 CMD 指定具体的参数。

说明:
1、如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。
2、如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。

ENTRYPOINT
ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数。ENTRYPOINT 在运行时也可以替代,不过比 CMD 要略显繁琐,需要通过 docker run 的参数 --entrypoint 来指定。

说明:
1、它们都可以指定要执行的命令及其参数。不同的地方在于 ENTRYPOINT 不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。

CMD 和 ENTRYPOINT 推荐使用 Exec 格式,因为指令可读性更强,更容易理解。RUN 则两种格式都可以。

举例:辨别CMD 和 ENTRYPOINT

FROM nginx:1.12.1
copy index.html /usr/share/nginx/html
ENV name=wangnn age=18
CMD ["echo","hello $name"]
#ENTRYPOINT ["echo", "hello $age"]
#CMD ["$name"]

sudo docker build . -t 192.168.0.201:5000/wangnginx

1、shell 和 ENTRYPOINT格式比较

CMD  ["echo","hello  $name"]
    CMD  echo "hello $name"

    CMD命令会被docker run命令覆盖 
sudo docker run --name nginxw    192.168.0.201:5000/wangnginx:latest   echo "test"

2、CMD作为ENTRYPOINT参数

ENTRYPOINT ["echo", "hello  $age"]
CMD    ["$name"]

    docker run命令作为ENTRYPOINT的参数
sudo docker run --name nginxw    192.168.0.201:5000/wangnginx:latest   echo "test"

sudo docker stop nginxw
sudo docker logs nginxw
sudo docker rm nginxw

docker入门基础篇(代码片段)

查看docker教学视频,请点击《狂神说java》:https://www.bilibili.com/video/BV1og4y1q7M4?p=1记得投币三连呀~~Docker学习Docker概述Docker安装Docker命令镜像命令容器命令操作命令......Docker镜像容器数据卷DockerFileDocker网络原理Idea整合DockerDockerCompose... 查看详情

docker入门基础(代码片段)

目录一、简介1、docker架构2、docker的概念二、docker的安装和管理1、docker安装2、docker配置阿里云镜像加速3、基础命令一、简介参考https://www.cnblogs.com/linuxk/p/8984242.html1、docker架构Docker使用客户端-服务器(C/S)架构模式,使用远程API来... 查看详情

docker零基础快速入门(通俗易懂)(代码片段)

...里云博客专家、华为云享专家、网络安全领域优质创作者Docker一、安装Docker二、配置镜像加速器三、Docker服务命令四、Docker镜像命令五、Docker容器命令六、Docker容器数据卷七、Docker部署应用1、部署Tomcat2.1解决页面404问题2.2解决... 查看详情

docker入门教程基础命令(代码片段)

1.配置docker加速器[[email protected]docker]#tee/etc/docker/daemon.json<<-‘EOF‘"registry-mirrors":["https://registry.docker-cn.com"]EOF 1.11启动第一个容器dockerrun-d-p80:80nginxrun创建并运行一个容器-d后台运行 查看详情

docker基础命令详解——镜像及容器操作(代码片段)

Docker基础命令详解——镜像及容器操作前言?上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。?当然,docker的相关命令非常多... 查看详情

docker基础知识-入门篇(代码片段)

1.Docker简介和KVM区别1.1docker的三大理念构建运输运行ps:有点类似于java代码,一次构建到处运行1.2docker结构相关说明:image:和虚拟机的镜像类似container:用镜像创建的实例repository:类似于yum仓库dockerclient:命令行输入的docker命令dockerserv... 查看详情

docker入门教程命令

 Docker入门教程(二)命令【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能。在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,... 查看详情

docker安装优化与docker基础命令(代码片段)

Docker安装优化与Docker基础命令#个人阿里云镜像加速;登陆阿里云搜索镜像加速,复制链接sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-‘EOF‘"registry-mirrors":["https://ye71id77.mirror.aliyuncs.com"]EOFsudosystemctldaemon-re 查看详情

docker基础命令学习(代码片段)

Docker学习Docker简介虚拟机和Linux容器Docker中基本概念镜像(Image)容器(Container)仓库(Repository)分层存储Docker的安装Centos6安装DockerCentos7安装Docker配置阿里云镜像加速器配置HelloWorld镜像底层运行原理Docker常用命令帮助命令dockerversion---查... 查看详情

docker安装入门(代码片段)

installdocker命令dockerversion//docker版本dockerpullnginx//拉取nginxdockerimages//查看本机docker镜像dockerps-a//查看运行中的dockerdockerstopID//暂停运行的dockerdockerstartID//启动已经暂停的dockerdockerrm-fID//删除dockerdockerexec-it 查看详情

docker基础实战教程:入门(代码片段)

Docker基础实战教程:入门前言HelloDocker!Docker使用的基本过程Docker使用基本实例拉取镜像获取镜像dockerpull命令背后的工作dockerpull的两个基本实例设置镜像加速器导入导出容器dockerexport和dockersave的区别前言Docker是一个操作系统... 查看详情

docker简单入门(代码片段)

现在主流的容器技术Docker,觉得不学下都跟不上节奏了,这里简单介绍docker的安装以及使用,有问题欢迎指出哈。这里主要讲以下几点:Docker安装Docker镜像创建Docker容器初探制作镜像上传镜像Docker安装首先我们下载一个ubuntu镜像... 查看详情

docker入门(代码片段)

简介:  Docker是一种容器技术,由pass提供商dotCloud开源的容器引擎,可以让开发者将应用以及应用的依赖环境等一起打包成镜像,方便的移植到其他Linux或Windows机器上。常用概念:Docker主机:安装了Docker的机器。Docker客户... 查看详情

docker应用-1(安装以及基础命令)

Docker安装还是看官方文档吧TAThttps://docs.docker.com/engine/getstarted/step_one/理解docker镜像和容器镜像就是docker容器在运行的时候所使用的文件系统以及系统内核,以及其他参数。当然,docker镜像一般都会比实际的操作系统+软件要轻便... 查看详情

三天入门docker-第一天:docker基本介绍与使用(代码片段)

Docker基本介绍与使用前言一、Docker介绍1.Docker架构2.Docker三大核心1)镜像2)容器3)仓库二、Docker安装1.下载Docker软件包2.Docker基础命令介绍1)镜像相关命令2)容器相关命令3.使用Docker实现Nginx网站前言我们这里... 查看详情

[docker]02centos安装docker(包含失败),安装命令简介,以及docker核心概念(代码片段)

主要内容:  一、安装docker(包含卸载重新安装)  二、配置docker服务  三、安装命令简介  四、docker核心概念 一、安装docker 1.1. 通过uname-r查看系统版本,为什么要查看系统版本呢?因为docke... 查看详情

[云原生专题-20]:容器-docker的常见命令(代码片段)

一、docker引擎的安装与启动安装dockeryuminstalldocker-ce启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlstatusdocker开机启动ÿ 查看详情

docker基础知识及入门(代码片段)

什么是Docker?Docker是由dotcloud公司使用golang语言进行开发的,基于Linux内核的cgroup,namespace,以及OverlayFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,... 查看详情