《Linux》day3--docker——docker镜像与容器

文章目录

1.将当前用户添加到docker用户组

因为使用docker必须要有sudo权限,为了避免我们每次都要输入sudo,我们可以将当前用户添加到docker用户组,参考官方文档

步骤如下:

  1. 創建docker組:sudo groupadd docker
  2. 将当前用户添加到docker用户组:sudo usermod -aG docker $USER
  3. 刷新一下用户组,然后退出终端重进。newgrp docker

2.docker鏡像(images)

  1. docker pull ubuntu:20.04:拉取一个镜像ubuntu:20.04
  2. docker images:列出本地所有镜像
  3. docker image rm ubuntu:20.04docker rmi ubuntu:20.04:删除镜像ubuntu:20.04
  4. docker [container] commit CONTAINER IMAGE_NAME:TAG:创建某个container的镜像(container 可以省略)
  5. docker save -o ubuntu_20_04.tar ubuntu:20.04:将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar(以.tar为后缀)
  6. docker load -i ubuntu_20_04.tar:将镜像ubuntu:20.04从本地文件ubuntu_20_04.tar中加载出来

注意:5 和 6 是逆运算

3.docker容器(container)

  1. docker [container] create -it ubuntu:20.04:利用镜像ubuntu:20.04创建一个容器。(container 可以省略)
  2. docker [container] create --name my_docker_server -it ubuntu:20.04:--name可以给自己建的容器起名字:my_docker_server
  3. docker ps:查看正在运行的容器
  4. docker ps -a:查看所有的容器,包括不在运行的容器
  5. docker [container] start CONTAINER_NAME or CONTAINER_ID:启动容器(container 可以省略)
  6. docker [container] stop CONTAINER_NAME or CONTAINER_ID:停止容器(container 可以省略)
  7. docker [container] restart CONTAINER_NAME or CONTAINER_ID:重启容器(container 可以省略)
  8. docker [contaienr] run -itd ubuntu:20.04:创建并启动一个容器(container 可以省略),如果不加d才进入该容器,加d则不进入该容器
  9. docker [container] attach CONTAINER_NAME or CONTAINER_ID:进入该容器;先按Ctrl-p,再按Ctrl-q可以挂起容器该容器(挂起是不关闭),按Ctrl-p是关闭退出该容器
  10. docker [container] exec CONTAINER_NAME or CONTAINER_ID COMMAND:在容器中执行命
  11. docker [container] rm CONTAINER :删除容器
  12. docker container prune:删除所有已停止的容器(container 不可以省略)
  13. docker export -o xxx.tar CONTAINER_NAME or CONTAINER_ID:将容器CONTAINER导出到本地文件xxx.tar中(容器像镜像一样可以直接生成一个文件)
  14. docker import xxx.tar image_name:tag:将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag(与镜像类似,12 与 13 是逆运算)
  15. docker export/importdocker save/load的区别:export/import会丢弃历史记录和元数据信息,仅保存容器当时的快照状态,save/load会保存完整记录,体积更大
  16. docker top CONTAINER_NAME or CONTAINER_ID:查看某个容器内的所有进程
  17. docker stats:查看所有容器的统计信息,包括CPU、内存、存储、网络等信息
  18. docker cp xxx CONTAINER_NAME or CONTAINER_ID:xxxdocker cp CONTAINER_NAME or CONTAINER_ID:xxx xxx:在本地和容器间复制文件(文件夹不需要加 -r)
  19. docker rename CONTAINER1_NAME CONTAINER2_NAME :重命名容器
  20. docker update CONTAINER_NAME or CONTAINER_ID--memory 500MB:修改容器限制

4.实战

bash 复制代码
scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar server_name:  # 将镜像上传到自己租的云端服务器
ssh server_name  # 登录自己的云端服务器

docker load -i docker_lesson_1_0.tar  # 将镜像加载到本地
docker run -p 20000:22 --name my_docker_server -itd docker_lesson:1.0  # 创建并运行docker_lesson:1.0镜像

docker attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码

去云平台控制台中修改安全组配置,放行端口20000。

返回Terminal,即可通过ssh登录自己的docker容器:ssh root@xxx.xxx.xxx.xxx -p 20000 # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址

相关推荐
Doris_LMS1 小时前
在Linux下安装nginx(保姆级别)
linux·运维·nginx·centos
超級二蓋茨2 小时前
在 CentOS 上安装 FFmpeg
linux·ffmpeg·centos
obboda3 小时前
Linux基础复习:字符输入与输出
linux·运维·服务器
*wj4 小时前
【linux驱动开发】Vscode + Remote SSH + clangd + bear=内核源码阅读环境搭建
linux·驱动开发·vscode
FED_AF6 小时前
Linux救援模式之应用篇
linux·运维
拾心216 小时前
【运维基础】Linux 进程调度管理
linux·运维·服务器
Blessed_Li6 小时前
【dify+milvus避坑指南】将向量库milvus集成给dify作为知识库
docker·ai·llm·milvus·dify
橘颂TA7 小时前
【Linux】的起源 and 3秒学习11个基本指令
linux·指令·linux的历史
岳来7 小时前
docker运行时目录/var/lib/docker 学习
学习·docker·容器运行时
~狂想家~7 小时前
Ubuntu20.04安装和配置Samba实现Win11下共享文件夹
linux·ubuntu·samba