Docker 实践
查看系统的两大命令
#发行版
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
#内核
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64
docker 安装
1.docker基础操作
#更新源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/doker.repo https://download.docker.com/linux/centos/docker-ce.repo
#刷新yum
yum clean all && yum repolist all && yum makecache
#linux内核的流量转发
cat <<EOF >/etc/sysctl.d/docker.conf
net.bridge.bridge-nf-cal1-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward=1
EOF
#查看是否有可用版本
yum list docker-ce --showduplicates | sort -r
#下载 docker18.09.9版本
yum install -y docker-ce
#配置docker加速器
mkdir /etc/docker
cat <<EOF >/etc/docker/daemon.json
{
"registry-mirrors" : [
"https://8xpk5wnt.mirror.aliyuncs.com"
]
}
EOF
#启动docker
systemctl start docker && systemctl enable docker
2.docker内置命令
#docker 查看版本
docker version
#搜索nginx镜像文件是否存在
docker search nginx
#查看docker镜像
docker images
#删除镜像
docker rmi +镜像ID
#拉取nginx镜像(自动拉取第一个 nginx镜像)(也可以指定版本号 例:nginx:8.15.6)
docker pull nginx
#运行镜像 (-d:后台运行 -it:后台运行 --name:容器名 -p:端口映射,宿主机:容器端口)
docker run 参数 镜像名字/ID(例:docker run -d -it --name nginx -p 8888:80 nginx)
#进入镜像内
docker exec -it +ID /bin/bash
#查看容器日志
docker logs -f
#查看容器资源信息
docker top +容器Id
#查看容器信息
docker inspect +容器Id
3.镜像管理
#docker拉取进行存放目录(json数据类型文件)
[root@localhost ~]# ls -l /var/lib/docker/image/overlay2/imagedb/content/sha256/
总用量 24
-rw------- 1 root root 8151 7月 17 16:09 021283c8eb95be02b23db0de7f609d603553c6714785e7a673c6594a624ffbda
-rw------- 1 root root 12945 7月 18 09:09 95f422fe411bb7540f4a680dfde9293d53f7b98abc1c5a8d453568fab5679ccc
#批量删除镜像
docker rmi `docker images -ap`
#批量删除容器
docker rm `docker ps -aq`
#导出镜像
docker images save +镜像名 > +/目录
#导入镜像
docker image load -i +/那个目录的镜像
#查看镜像详细服务
docker image inspect +镜像ID
#端口映射
docker run -d --name +自定义容器名 -p 映射端口:容器端口 +镜像名
##随机端口映射
docker run --name +自定义容器名 -p +镜像名
#进入镜像
docker exec -it +镜像ID bash
#查看容器端口转发情况
docker port +容器ID
#提交容器
docker commit +容器ID +新的镜像名
Dockerfile实例
-
使用python语言,基础flask web框架,自己开发网站
-
使用dockerfile
[root@master DOCKERFILE]# cat 8888.py
##python解释器utf-8
#coding:utf-8
##导入Flask这个包
from flask import Flask
##app赋值
app=Flask(__name__)
##装饰器(例如:http:888.com/huahua)
@app.route('/huahua')
##网页首页显示
def hell():
return "hello docker, I am nginx"
##启动框架
if __name__=="__main__":
app.run(host="0.0.0.0",port=80)
[root@master DOCKERFILE]# cat Dockerfile
##定义镜像
FROM centos:7
##修改镜像源
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo;
##修改镜像源
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo;
##生成缓存
RUN yum makecache fast;
##安装python3
RUN yum install python3-devel python3-pip -y;
##安装flask框架
RUN pip3 install -i https://pypi.douban.com/simple flask
##拷贝8888.py到/opt
COPY 8888.py /opt
##指定进入容器后目录
WORKDIR /opt
##暴露端口
EXPOSE 80
##容器内部执行文件
CMD ["python3","8888.py"]
##启动dockerfile(这个会报错,因为名称不能大写)(-t:设置dockerfile名称)
[root@master DOCKERFILE]# docker build -t 'NGINX' .
##(--no-cache:从缓存直接)
[root@master DOCKERFILE]# docker build --no-cache -t 'huahua\my_flask_web' .
标签:容器,复习,##,repo,镜像,docker,root,Docker From: https://www.cnblogs.com/huahuadebk/p/17660344.html