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

相关推荐
vvw&20 分钟前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
大哥_ZH24 分钟前
Linux umami在国产麒麟系统安装网站统计工具(只能上国内网站的系统)
linux·服务器
o(╥﹏╥)40 分钟前
在 Ubuntu 上安装 VS Code
linux·运维·vscode·ubuntu·vs
不爱学英文的码字机器1 小时前
[Linux] Shell 命令及运行原理
linux·运维·服务器
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_433618441 小时前
shell 编程(三)
linux·运维·服务器
Tlzns2 小时前
Linux网络——UDP的运用
linux·网络·udp
码农土豆2 小时前
PaddlePaddle飞桨Linux系统Docker版安装
linux·docker·paddlepaddle
Hacker_xingchen2 小时前
天融信Linux系统安全问题
linux·运维·系统安全
张暮笛2 小时前
抓取手机HCI日志
linux