一、Docker引擎安装
【Docker安装】
1.配置Docker源,升级内核
yum upgrade -y
2.配置防火墙和SELinux
3.开启路由转发
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
modprobe br_netfilter
4.Docker引擎安装
yum install -y yum-utils device-mapper-p*
yum install -y device-ce*
5.启动Docker,查看系统信息
systemctl daemon-reload
systemctl restart docker
docker info
二、Docker仓库的搭建
【Docker仓库使用】:配仓库,打标记,推送
1.后台(-d)启动容器,映射从右往左(-v),–restart=always(重启docker时重启容器)
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
2.配置私有仓库
vi /etc/docker/daemon.json
{“insecure-registries”:[“仓库IP地址:5000”]}
systemctl restart docker
docker tag:标记镜像 (公式:docker tag 镜像 镜像仓库IP地址:5000/镜像)
docker tag centos:latest 仓库IP地址:5000/centos:latest
3.上传标记的镜像
docker push 镜像仓库IP地址:5000/镜像
4.查看被推送的镜像
curl -L http://镜像仓库IP地址:5000/v2/_catalog
5.slave节点拉取镜像
(1)先配置私有仓库地址
vi /etc/docker/daemon.json
{“insecure-registries”:[“仓库IP地址:5000”]}
systemctl restart docker
(2)拉取镜像
docker pull 镜像仓库IP地址:5000/镜像
三、Docker镜像和容器的使用
【Docker 镜像和容器的使用】
1.列出本地的镜像
docker images
2.查找镜像
docker search [OPTIONS] TERM
OPTIONS 说明:
--automated:只列出 automated build 类型的镜像。
--no-trunc:显示完整的镜像描述。
--filter=stars:列出收藏数不小于指定值的镜像。
例如:docker search --filter=stars=10 java
3.删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE…]
OPTIONS 说明:
-f:强制删除。
--no-prune:不移除该镜像的过程镜像,默认移除
例如: docker rmi -f busybox:latest(强制删除本地镜像 busybox)
4.启动容器
docker start container id
docker start $(docker ps -aq)(启动所有容器)
5.查看容器日志
docker logs [OPTIONS] [container ID or NAMES]
OPTIONS 说明:
--details:显示更多的信息。
-f,–follow:跟踪实时日志。
--sincestring:显示自某个 timestamp 之后的日志,或相对时间,如 42 分钟。
--tailstring:从日志末尾显示多少行日志,默认是 all。
-t,–timestamps:显示时间戳。
--until string:显示自某个 timestamp 之前的日志,或相对时间,如 42 分钟
6.进入容器
docker exec -it [container id] bash
Ctrl+C退出容器或exit
7.终止容器
删除终止状态的容器。
删除所有处于终止状态的容器。
docker container prune删除未被使用的数据卷。
docker volume prune删除运行中的容器。
docker rm -f [CONTAINER ID]批量停止所有的容器。
docker stop $(docker ps -aq)批量删除所有的容器。
docker rm $(docker ps -aq)终止容器进程,容器进入终止状态。
docker container stop [CONTAINER ID]8.导入/导出容器
docker export [container id] > [tar file]
例如: docker export 5d42a9fafeb6 > nginx.tar
把容器快照文件导入为镜像:cat [tar file] | docker import - [name:tag]
例如:
9.构建自定义镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS 说明:
-a:提交的镜像作者。
-c:使用 Dockerfile 指令来创建镜像。
-m:提交时的说明文字。
-p:在 commit 时,将容器暂停。
例如: docker commit 1ff9fd00baa5(容器ID) nginx:v1
10.Dockerfile
mkdir centos-jdk
mv jdk/jdk-8u141-linux-x64.tar.gz ./centos-jdk/
cd centos-jdk/
vi Dockerfile
FROM centos
MAINTAINER Guo
RUN mkdir /usr/local/java
ADD jdk-8u141-linux-x64.tar.gz /usr/local/java/
RUN ln -s /usr/local/java/jdk1.8.0_141 /usr/local/java/jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME
J
A
V
A
H
O
M
E
/
j
r
e
E
N
V
C
L
A
S
S
P
A
T
H
.
:
{JAVA_HOME}/jre ENV CLASSPATH .:
JAVAHOME/jreENVCLASSPATH.:{JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH
J
A
V
A
H
O
M
E
/
b
i
n
:
{JAVA_HOME}/bin:
JAVAHOME/bin:PATH
使用docker build构建新镜像
docker build -t=“centos-jdk” .
运行容器
docker run -it -t=“centos-jdk” .
【YAML】
YAML的基本语法规则:
① 大小写敏感;
② 使用缩进表示层级关系;
③ 缩进时不允许使用Tab键,只允许使用空格;
④ 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。
对象键值对使用冒号结构表示key: value,冒号后面要加一个空格。也可以使用key:{key1: value1, key2: value2, …}
“&”用来建立锚点(defaults),“<<”表示合并到当前数据,“*”用来引用锚点



