docker一些常用知识点总结

目录

docker几个重要概念

  • docker:类似一个轻量级的虚拟机,仅保留内核,去除了很多无关的功能,在其上可以独立的安装大量容器,每个容器都有独立的运行环境。
  • 仓库 存放docker镜像
  • 镜像(image) 打包的运行环境
  • 容器 (container)镜像在docker上运行后就是对应的一个容器
  • dockerfile 通过dockerfile可以自定义生成一个镜像

docker一些常用操作

docker服务启动

systemctl start docker

镜像的查找

  • 代码查找
docker search 待查找镜像名
docker search fastqc # 查找fastqc相关镜像资源
  • 网站查找

    ​ docker hubs

镜像下载

docker pull 镜像名
docker pull nfcore/fastqc

镜像状态查看与删除

docker images # 查看所有下载镜像
docker rmi 镜像名/镜像ID # 删除镜像

镜像运行—生成容器

docker run --mount type=bind,source=本地主机路径,target=docker容器路径 --name 容器名 -p 7778:22 -p 7788:7788 --ipc host -dit 镜像名/镜像ID
-it 与容器bash进行交互
-d 后台运行
source 指定本地主机与docker文件进行共享的路径
target 指定docker容器与本地主机交互的路径如/workspace
-p 指定docker与容器交互的接口,7788方便后期链接vscode
也可以-v 本地路径:docker容器路径 将本地文件夹挂载到docker容器,实现交互

容器一些操作

  1. 容器情况查看

    docker ps # 展示目前正在运行的容器
    docker ps -a # 展示所有容器,包括停止
    docker ps -q # 仅展示容器ID
    
  2. 容器删除

    docker rm 容器名/容器ID # 移除容器
    
  3. 容器运行操作

    docker start 容器名 # 启动容器
    docker attach 容器名 # 进入容器
    docker exec -t 容器名 待运行脚本 # 直接通过终端控制,在docker容器运行脚本
    docker stop 容器名 # 停止容器
    docker kill 容器名 # 终止容器
    docker cp # 从主机拷贝数据到容器
    docker exec -it 容器名 /bin/bash # docker容器终端多开
    

    注意:docker attach进入容器,相当于进入一个安装特定工作环境的linux中

  4. 容器保存

    # 将容器保存为新镜像
    docker commit -a='author' -m='comment' 容器名 包名/镜像名:版本号(Tag)
    # 镜像本地保存
    docker save -o /path/filename.tar 镜像名
    # 载入本地镜像
    docker load —input 保存镜像文件名
    
  5. docker 容器扩容

    docker容器默认空间只有10G,以root用户登录对应节点,编辑“daemon.json”文件,

    vi /etc/docker/daemon.json
    在文件中增加一条“dm.basesize=15G”,15G即容器存储空间大小,可以配置为其他值
    

    然后重启docker,systemctl restart docker

    使用df -h查看容器是否扩容

  6. docker容器与主机共享文件

    # 共享D:盘
    docker run -p 6777:6379 -v /D/Docker/redis/data:/data -d redis redis-server --appendonly yes
    # docker cp 宿主局文件/路径 容器名:容器内路径
    docker cp /home/Download/index.html wordpress-lee:/var/www/html
    # docker cp 容器名:文件/路径 宿主机路径
    docker cp wordpress-lee:/root/example.sh /root
    # 构建容器时报警告 缺少linux/amd64
    docker run --plotform linux/amd64