学习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脚本图片一张:

 

 

 

posted @ 2020-04-05 10:36  为生活而努力  阅读(427)  评论(0)    收藏  举报