Docker 复习

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' .
 

 

 

 

 

posted @ 2023-08-27 15:26  花花de代码生活  阅读(6)  评论(0编辑  收藏  举报