学习K8S之路.1---Docker
一:基本操作及安装docker引擎:
1:关闭防火墙,selinux
systemctl stop firewalld.service
setenforce 0
2:同步时间
ntpdate time1.aliyun.com
3:添加yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4:安装epel源
yum install -y epel-release
查看是否有docker可安装包:
yum list docker --show-duplicates
5:安装docker ce(社区版),需要安装yum源
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 验证是否有docker-ce版本
yum list docker-ce --show-duplicates
6:安装docker引擎
yum install -y docker-ce
7:设置docker开机启动项
systemctl enable docker
systemctl start/stop/restart/status docker
8:查看docker安装是否异常
docker info
9:对docker引擎进行配置
]# vi /etc/docker/daemon.json
{
"graph": "/data/docker",
"storage-driver": "overlay2",
"insecure-registries": ["registry.access.redhat.com","quay.io"],
"registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com/"],
"bip": "172.201.129.1/24",
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true
}
使用docker info可以查看相关配置信息
二:命令基本操作
# 登录docker网站进行pull,push
docker login docker.io
# 搜索镜像
docker search alpine
# 下载镜像
docker pull alpine
docker pull alpine:3.10.1
# 查看镜像
docker images
# 对镜像进行打tag
docker tag ed21b7a8aee9 docker.io/liyp/nginx:latest
注: ed21b7a8aee9 :images镜像tag
docker.io : 镜像地址
liyp : 镜像仓库
nginx:latest : 镜像名称及tag
# 镜像上传到docker.io网站 或 私有仓库中
docker push docker.io/liyp/nginx:latest
# 删除镜像文件
docker rmi liyp/nginx:latest
# 启动容器,并进入交互式模式,退出,容器并关闭
docker run -it nginx:latest /bin/bash
# 查看docker启动容器
docker ps
docker ps -a
# 删除容器
docker rm 容器名称/容器ID
docker rm -f 容器名称/容器ID
# 循环删除关闭的容器
for i in `docker ps -a|grep -i exit|awk '{print $1}'`;do docker rm -f $i;done
# 在后台启动一个名称为mynginx的容器
docker run -d --name mynginx nginx:latest
# 进入容器
docker exec -it aaca3ad3eb06 /bin/bash
# 提交一个容器
docker commit -p mynginx(容器名称) docker.io/liyp/mynginx_v1.0
# 把镜像保存为tar包
docker save 94eac2202250(镜像ID) > mynginx_v1.0.tar
# tag包镜像进行导入,导入成功后,没有tag,进行修改tag
docker load < mynginx_v1.0.tar
docker tag 94eac2202250(镜像ID) liyp/mynginx:v1.1
# 查看docker容器log
docker logs -f 容器名称/容器ID
三:高级操作
1:-p 端口映射
docker run -d --name mynginx -p 81:80 nginx:latest
注:--name nginx-test:容器名称。
-p 80:80: 端口进行映射,将本地 81 端口映射到容器内部的 80 端口
2:-v 将本地目录目标挂载到容器中目录
mkdir /root/html
wget www.baidu.com -O index.html
docker run -d --name mynginx -p 81:80 -v /root/html:/usr/share/nginx/html nginx:latest
注:-v : 将/root/html 目录挂载到 /usr/share/nginx/html 目录下
3:-e 容器使用本地环境变量
docker run --rm -e E_OPTS=abcde nginx:latest printenv
注:--rm : 退出并删除此容器
E_OPTS=abcde : 环境变量键值对
-e : 使用本地环境变量
printenv : 打印环境变量
4:容器内安装软件(工具)
docker run -d --name mynginx -p 81:80 nginx:latest
docker exec -it mynginx /bin/bash
tee /etc/apt/sources.list << EOF
> deb http://mirrors.163.com/debian/ jessie main non-free contrib
> deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
> EOF
# 更新源,并安装curl
apt-get update && apt-get install curl -y
# 可以commit,并push到仓库
docker commit 9006502eba5e(容器ID) docker.io/liyp/nginx_curl
docker push docker.io/liyp/nginx_curl
四:编排Dockerfile
第一行:FROM
USER : 指定启动用户
WORKDIR : 相当于cd命令,进行切换
ADD : 相当于cp命令,进行复制
EXPOSE : 容器指定端口
ENV : 用于声明环境变量
RUN : 运行可执行命令
CMD : 运行的进程
ENTRYPOINT : 运行执行的脚本
附:dockerfile脚本图片一张:

浙公网安备 33010602011771号