Docker安装与日常使用

【本文是作者给自己实验室同学写的一个guide,分享给有需要的同学】

安装教程网页:

官方安装教程

警告: apt源不对的话可能会导致安装失败

1.卸载旧版本:

sudo apt-get remove docker docker-engine docker.io containerd runc

2.添加仓库源:

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
 sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

3.检查是否安装ok

sudo docker run hello-world

4.增加用户组

sudo gpasswd -a 本用户名 docker
newgrp docker

5.以后就不需要使用sudo了

日常使用

命令集合(防走散

打包:         docker commit 已有容器名 新的镜像名
拷贝文件:     docker cp /主机/文件夹 容器名:/容器/文件夹
把镜像导出:  docker save -o 镜像包.tar 镜像名
加载已有镜像:docker load -i 镜像包.tar

加载已有的镜像(可选)

如果你有自己打包好的镜像,上传到服务器上之后使用命令docker load < MY-IMAGE.tar加载自己的镜像,就可以进行下一步创建容器了。

当然,你会打包镜像,这步操作你肯定也会的。

创建自己的Docker容器(一次就够)

docker run -d -ti --gpus all  -v /home/lab:/workspace -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 222:22 -e  --name MY-DOCKER lab:base

解析:

  • –gpus all是把所有gpu挂载上去
  • -v 是挂载文件(可选),左边是host的真实路径,右边是container里边构造的路径。必须使用绝对路径,例子里是把主机的/home/MY-NAME挂载到容器里的/workspace里。
  • -p 是端口映射,比如把ssh端口给暴露给主机。
  • –name 是给自己的容器起一个别名,便于查找和操作。
  • 其余的操作可以docker run --help查看
  • 最后一个是镜像名称。

命令运行完成之后返回一个容器id,不用管,你需要记住的就是你的容器别名,即刚才你指定的--name参数。

运行该命令之后,就已经创建好自己的容器,以后不需要再次创建。

进入容器内部

docker exec -it  MY-DOCKER /bin/bash

解析:

  • WARNING :不要加 -d选项
  • /bin/bash 启动一个终端,一般来说直接输入 bash也可以

docker环境的改动不会影响外界宿主机的环境,尽可大胆操作。

but,对于挂载的文件,是会修改的。

小trick: 如果每次都要输入这么一长串,那就有点烦人,建议把alias mydocker='docker exec -it MY-DOCKER bash'写到本账户的.bashrc文件末尾,即给这一串命令上一个别名。

谁在占用资源?

每个docker都是一个相对隔离的”隔间“,我们无法通过docker看到谁在占用资源,并且在宿主机看到的是root账户在跑任务。

如果你打算跑代码的时候,看到资源情况占用情况很高,这个时候就只能在群里问一下谁在跑代码没有。勤沟通,促进同学情谊 😃

容器停止了?那么启动自己原有的容器

如果没有遇到突发事故,容器是不会停止的。如遇断电,docker停止了,那么我们不需要在去创建新的容器,只需要启动我们原有的容器。

命令:

docker start MY-DOCKER 

顺便启动一下管理工具,我已经命名为port,使用如下命令:

docker start port

我不知道自己的有没有启动

没问题,放心start,对于一个正在运行的容器,使用了start并不会造成什么影响

安装portainer

开放2375端口:

修改vi /etc/default/docker文件

添加一行:DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock"

/lib/systemd/system/docker.service文件

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改为

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd://

开放2375端口:

ufw allow 2375/tcp

重启docker

systemctl daemon-reload
/etc/init.d/docker restart

相关链接

关闭selinux:/etc/selinux/config设置SELINUX=disable

运行portainer

run一个portainer:

docker volume create portainer_data
&&
docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

这样就可以登录 ip:9000来管理这些容器和镜像了。

Contact me: jianshu[AT]std.uestc.edu.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值