0基础学习docker

进入docker容器命令

docker exec -it 容器id bash

获取镜像

# 1.获取镜像,镜像托管仓库
docker search centos # 查询centos镜像
docker images # 查看本地的镜像
docker pull centos # 下载镜像 默认是centos:latest
docker pull centos:7.8.2003 # 后面也可以跟版本
docker info | grep Root # 查看docker文件保存路径
ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ #保存着docker镜像的文件
# 该文件的作用是
记录 镜像 和容器的配置关系

# 使用不同的镜像 生成容器
# -it 开启一个交互式的终端 --rm 容器退出时删除该容器
docker run -it --rm centos bash

查看镜像

docker images # 查看镜像
# 只列出id参数
-q
# 格式显示镜像
# 这是docker的模版语言
docker images --format "{{.ID}}--{{.Repository}}"

删除镜像

# 根据镜像的id,名字,摘要等
docker rmi hello-world
# 删除容器
docker rm 容器id

管理镜像

docker images -aq # 查看镜像的id
docker rmi `docker images -aq` # 批量删除镜像
# 导出镜像
docker images save centos:7.8.2003 > /opt/centos7.8.2003.tgz
# 导入镜像
docker image load -i /opt/centos7.8.2003.tgz

Docker 容器管理

docker run等于创建+启动

docker run 镜像名,如果镜像不存在,则会在线去下载该镜像
注意:容器内的进程必须处于前台运行,否则容器就会直接退出,如果容器内什么事也没做,容器也会挂掉
-d 后台运行
--rm 容器挂掉后自动被删除
--name 给容器起名字

docker run centos
这个写法,会产生多条独立的容器记录,容器内没有程序在跑,因此挂掉了
# 运行容器,且进入容器内,且在容器内执行某条命令
docker run -it centos bash
# 让容器后台运行,会返回一个容器id
docker run -d centos ping baidu.com
# 查看容器日志
docker logs -f
docker logs 容器id | tail -5
# 查看容器的详细信息
docker container inspect 容器id
# 容器的端口映射
docker run -d --name my_nginx -p 80:80 nginx
# 查看容器的端口映射
docker port 容器id
# 容器的随机端口映射
docker run -d --name my_nginx_random -P nginx
# 容器的提交
docker commit 容器id 新的镜像名

Docker file

FROM 指定基础镜像
MAINTAINER 指定维护者信息,可以没有
RUN 在命令前面加上RUN指令即可
ADD 添加一个宿主机的文件到容器内,有自动解压的功能
COPY 作用和ADD是一样的,COPY就仅仅是拷贝
WORKDIR 设置当前工作目录
VOLUME 设置卷,挂载主机目录
EXPOSE  在容器内暴露一个端口
CMD 指定容器启动时做什么事

dockerfile实践

# 1.创建Dockerfile,注意文件名,必须是这个
FROM nginx
RUN echo '<meth charset=utf8>超哥带你用docker运行nginx服务' > /user/share/nginx/html/index.html

# 2.构建Dockerfile
docker build .

# 3.修改镜像名字
docker tag 镜像id 名字
# 4.运行该镜像
docker run -d -p 80:80 my_nginx

dockerfile指令的用法

# COPY
COPY chaoge.py /home/

# 支持多个文件,以及通配符形式复制
COPY chaoge* /tmp/cc?.txt /home/

# ADD
ADD chaoge.tgz /home/

posted @ 2022-04-21 17:44  happy豪  阅读(32)  评论(0编辑  收藏  举报