虚拟机技术每家公司发展到必定规模都有必要考虑的,更好的环境阻隔,更好的事端排查,更好的服务安顿

  • docker的原理
  • docker替换阿里源
  • docker容器的相关指令
  • Dockerfile文件编写
  • docker镜像的相关指令

注重公众号,一起交流,微信搜一搜: 潜行前行

1 docker的原理

  • Docker 运用Linu交流作文x 中的中心别离机制,例docker设备布置如Cgroups,以及Linux的中心Namespace(姓名空间)来创立独立的容器。一句话归纳起来Dock交流的重要性er便是运用Namespace做资实例化servlet类异常源阻隔,用Cgroup做资源束缚,运用Union FS做容器文件体系的轻量级虚拟化技术。Docker容器的实质仍是一个直接作业在宿主机上面的特别进程,看到的文件体系chrome浏览器下载是阻隔后的,但是操作体系内核是同享宿主机OS,所以说Docker是轻量级的虚拟化技术

doc实例化类ker 镜像分层

  • docker 容器,理解为一个或多chromebook个作业进程,而这些作业进程将占有相应的内存,相应的CPU核nginx面试题算资源,相应的虚拟网络设备以及相应的文件体系资源。而 docker 镜像,则像一个未作业的软件包,为 docker 容器的作业供给文件资源。
  • docker 镜像是分层的。发nginx面试题交流能力镜像时,一个新的可写层会加载到镜像的顶层。这一层一般称为”容器层”,之下是”镜像层”,可能存在多个层。容器层可以读写,容器悉数发生文件改动写都发生在这nginx负载均衡一层。镜像层只允许读取,read-only
  • 在容器层的文件增删操作,指令设备,都会被记录下来。咱们可以经过 commit 指令来创立一个新的镜像

技术篇:docker的简易教程

2 dockChromeer 替换阿里源

# vi /etc/apt/sources.list
~~更新源
# sudo apt-get clean
# sudo apt-get upnginx是什么意思dnginx怎样读ate
~~ 设备vim
# apt-get install vim
  • ubuntu 18 的阿里nginx菜鸟教程镜像文件。运用下实例化目标的关键字面的数据替换原 sources.list 里docker菜鸟教程的数据
deb http://mirrors.aliyun.com/ubuntu/ trusty main mudocker和虚拟机的差异ltiverse restricted universe
deb http://nginx反向代理mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse renginx负载均衡战略stricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http:/实例化数组/mirrors.aliyun.com/ubuntu/ trus交流ty-security main mnginx面试题ultiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/chrome trusty main multidockerfileverse rnginx配置estri实例化cted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed mdocker菜鸟教程ain multiverse restricted universe
deb-src http://minginx配置rrors.alnginx怎样读iyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.交流技巧com/ubuntu/ trusty-updates main multiverse restricted universe

3 docker容器的相关指令

run 实例化容器

  • 创立一个新的容器并作业:docker run [options] image [command]。image 可所以镜像ID 也可所以库房名+Tag名:repository[:tag]
options 常用参数
-i              以交互办法作业容器,一般与 -t 一起运用
-t              为容器重新分配一个伪输入终端,一般与 -i 一起运用
-d              后台作业容器,并回来容器ID
--name=<name>   为容器指定一个称号
-p              指定端口映射,格局为:主机(宿主)chrome官方下载端口:容器端口
--net="bridge"  指定容器的网络连接类型,支撑bridge/hosdocker常用指令t/none/container: 四种类型
-e ="v"         设置环境变量交流技巧
  • 示例
[root@lwl]# docker rnginx发动指令un -it -p 80:80 --name mynginx nginx:latest /bin/bash
root@b8573233d675:/#
~~ 假如容器的建议指令是依托伪终端实施,则需求 -it,如 ubuntu:14.04 镜像
~~ 没有依托伪终端实施的建议指令,可去掉-it,由nginx负载均衡战略于-d 参数会直接回来容器IDdocker面试题及答案
[root@lwl]# docker run -it -d -p 80:80 --name mynginx nginx:latest
315cc38afc2f06abb5a2fbb075ebca16455367b2de685cf0c5ba828ab62dd5a1
[root@lwl]#nginx是什么意思

start、stop、restart 建议与中止

~nginx负载均衡战略~ 建议已被中止的容器 。 container 可所以容器名 也可所以容器ID
# docker start container
~~ 中nginx怎样读止作业中的容器
# doc交流的重要性的名言kernginx负载均衡战略 stop container
~~ 重启容器
# docker restart container

ps 容器chrome浏览器下载查询

// 列出容器
# docker pdocker容器s [-options]
-a :闪现悉数的容器,包含未作业的。
-f :依据条件过滤闪现的内docker常用指令容。
--format :指定回来值的模板文件。
-l :闪现最近创立的容docker指令器。
-chrome浏览器安卓版下载n :列出最近创立的n个容器。
--no-trunc :不堵截docker容器输出。
-q :静默办法,只闪现容器编号。
-s :闪现总的文件大小
// 相当于在 container 容docker菜鸟教程器里运用 top指令
# docker top conta交流的重要性iner

rm 删去容器

# docker rm container

cp 文件传输

  • 本机和 docker 容器之前的交流的三要素是什么文件传输
~~ 拷贝本地目录 srcPath 到 容器 container 的目录 destPath
# docker cp srcPath container:destPath
~~ 拷贝容器 container 的目录 srcPath 到本地目录 destPath
# docker cp container:destPath srcPath

exec 在作业的容器中实施指令

docker exec [options] conta实例化类iner command
-d :别离办法: 在后台作业
-i :即使没有附加也坚持STDIN 打开
-t :分配一个伪终端
~~ 在容器 mynginx 中以交互办法实施容器内 /root/run.sh 脚本
# docker exec -it mynginx /bin/sh /root/run.sh
~~ 在容器 mynginx 中打开一个交互办法的终端
# docker exec -it myChromengin交流技巧和办法x /bin/bash

logs 获实例化servlet类异常取容器的日志

docker logs [options] container
-f      盯梢日志输出
--sindocker设备ce 闪现某个开始时刻的悉数日志
-t      闪现时刻戳
--tail  仅列出最新N条容器日志

[rNginxoot@lwl]# docker logs -f mynginx
192.168.239.1 - - [10/Jul/2021:16:docker指令53:33 +0000] "GET / HTTP/1.1" 200 61交流2 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWe实例化需求bKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/5交流技巧37.36" "实例化目标是什么意思-"
202docker菜鸟教程1/07/10 16:53:33 [erro交流作文r] 5#5: *1 open() "/usr/share/nginx/html/favChromeicon.ico" failed (2: No such file or directory), client: 192.168.239.1, server: localhost, req交流技巧uest: "GET /favicon.ico HTT
....

4 Dockerf交流的重要性ile文件编写

# dock交流技巧和办法er bnginx发动指令uild -f /path/to/a/Dockerfile实例化目标是什么意思
// 1 FROM:指nginx是什么意思定基础镜像,有必要为第一个指令,格局:
FROM <image>
FROM <image>:<tag>
// 2 MAINTAINER: 维护者信息 格局:
MAI交流的艺术NTAINER <name>
// 3chrome浏览器手机版 ENV:设置环境变量 格局
// 4 ARG:用于指定传递给构建作业时的变量 格局:
ARG <name>[=<defaunginx反向代理lt value>nginx怎样读]
// 5 WORKDIR:作业目录,类似于cd指令 格局:
WORKDIR /path/to/workdir
ENV <key>=<value
// 6 ADD:将本地文件添加到容器中,可以拜访网络资源,类似wget
ADD <src>nginx菜鸟教程... <dest>
// 7 COPY:功用类似ADD,但是是不会主动解压文件
// 8 RUN:构建镜像时实施的指令 格局
RUN <command>docker常用指令
// 9 CMDchrome浏览器手机版:构建容器后调用,也便是在容器建议时才进行调用
CMD command param1 param2 (实施shell内部指令)
// 10 ENTRYPOINT:配备容器,使其可nginx负载均衡战略实施化
ENTRYPOINT command paramNginx1 param2 (shell内部指令)
  • Dockerfile 示例
# 基础镜像
FROM centos
# 维护者信息
MAIchrome浏览器下载NTAINER tianfeiyu
#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbinnginx是什么意思:$PATH
#ADD  文件放在当前目录下,拷曩昔会主动解压
ADD nginx-1.8.0.tar.gz /usr/local/
ADD epel-release-latest-7.noarch.rpm /usr/local/

# RUN 实施以下指令
RUN rpm -ivh /usr/local/ep实例化目标有几种办法el-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre &实例化servlet类异常amp;& yumchrome浏览器安卓版下载 clean all
RUN useradd -s /sbin/nolNginxogin -M www

# WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.chrome什么意思0
RUN ./configure --prefix=/usr/local/nginx --nginx反向代理user=www交流作文 --docker和虚拟机的差异gchrome下载安卓版roup=www --with-httpchrome下载安卓版_ssl_module --with-pchrome浏览器手机版cre && make && make ins实例化tchrome下载安卓版all
RUN echo "daemon off;" >> /etc/nginxchrome浏览器下载.conf

# CMD 作业以下指令
CMD ["nginx"]

5 docker 镜像的相关指令

  • 镜像检查罗列:docker images
  • 镜像查找:docker search <imageName>;imageName 是 repository[:tag] 的含糊词
  • 交流能力取:docker pull repository[:tag]
  • 删去单个镜像:docker rmi 镜像ID 或许docker rmi repository[:tag]
  • docker设备布置镜像打别号(标签):docchrome官方下载ker tag oldRepositonginx负载均衡ry[/:oleTag] new交流的重要性Repository][/:ne实例化目标wTag]
# do交流作文cker tag ubuntu:15.10 lwl/ubuntu:v3
  • 构建镜像
~~ 依据 Dockerfile 构建镜像
# docker build -t repository[:tag] dir
# docker build -t lwl/ubuntu:v1 .
options 参数
--bnginx发动指令uilnginx发动指令d-arg=[]   设置镜像创立时的变量
-t               镜像的姓名及标签,一般 name:tag 或许 name 格实例化数组式
-f               指定要运用的Dockerfile途径
~~ 依据正在作业的 container 容器 构建镜像
# docker commit [options] con实例化类tainer repository[:tag]
onginx是干嘛用的ptions 参数
-a :提交的镜像作者;
-c :运用Dockerfile指令来创立镜像;
-m :提交时的阐明文字;
-p :在commit时,将容器暂停
  • 推送:docker push repository[:tag]

欢迎纠正文中错误

参阅文章

  • docker ubuntu容器替换阿里源(转)
  • docker 常用指令
  • Dockerfile文件详解