关键词:
1、docker 常见命令以及安装知识详解
-
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等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,... 查看详情