《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地址

相关推荐
---学无止境---7 分钟前
Linux内存管理揭秘:页表递归清理与TLB优化机制
linux
jarreyer29 分钟前
【ubuntu离线安装Oracle 客户端】ldd /opt/oracle/instantclient_19_8/libclntsh.so
linux·ubuntu·oracle
vvw&36 分钟前
如何在 Ubuntu 上安装 PostgreSQL
linux·运维·服务器·数据库·ubuntu·postgresql
小跌—1 小时前
Linux:多路转接
linux·网络
csdn_aspnet1 小时前
如何在 Mac、Ubuntu、CentOS、Windows 上安装 MySQL 客户端
linux·windows·mysql·macos·centos
铭哥的编程日记1 小时前
【Linux网络】传输层协议UDP
linux·网络·udp
x_lrong1 小时前
Linux虚拟机配置jupyter环境并在宿主机访问
linux·运维·笔记·jupyter·虚拟机
羚羊角uou2 小时前
【Linux网络】Socket编程TCP-实现Echo Server(上)
linux·运维·服务器
爱奥尼欧2 小时前
【Linux笔记】网络部分——数据链路层mac-arp
linux·网络·笔记
Evan_ZGYF丶2 小时前
深入解析CFS虚拟运行时间:Linux公平调度的核心引擎
linux·驱动开发·嵌入式·bsp