docker使用指南

在这里插入图片描述

1. 安装docker

使用如下命令可以安装docker,安装成功后docker version可以查看到docker的client和server信息。

sudo apt install docker docker.io -y

为普通用户添加权限

sudo chmod 666 /var/run/docker.sock

下面的方法同样可行,将非root用户名添加到docker组

sudo gpasswd -a $USER docker  # 将当前用户添加至docker用户组
systemctl restart docker
# 刷新用户组
newgrp - docker


# 查看docker版本,没有报错证明安装成功
docker version
# 运行helloworld,会提示你运行成功了
docker run helloworld

2. 修改镜像地址

国内访问docker官网的镜像非常缓慢,需要修改镜像地址。

# daemon.json默认存在则将配置加在末尾,不存在则创建后添加内容
sudo vim /etc/docker/daemon.json

添加如下内容,即将阿里云作为镜像地址。注意下面的地址一段时间会过期,读者可以用自己的账号去阿里云获取相应的链接。

{
  "registry-mirrors": ["https://hh3d1zzg.mirror.aliyuncs.com"]
}

修改配置后,重新加载配置

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker

其它可选docker镜像地址

中国镜像https://registry.docker-cn.com
网易镜像https://hub-mirror.c.163.com
百度镜像https://mirror.baidubce.com

3. 查看docker信息

查看系统中有哪些容器,不加-a只查看运行中的,加了-a查看所有容器。

docker ps -a

在这里插入图片描述

查看宿主机内的容器个数,镜像源等信息

docker info

查看容器占用资源情况

docker stats

4. 镜像管理

docker镜像是分成多个包的,所以拉取镜像时可以并行拉取。
查看系统内有哪些镜像

docker images

拉取镜像,冒号用于指定镜像版本

docker pull tomcat:8

查看远程镜像,镜像会按星星排序,所以一般选择靠前的镜像

docker search 镜像名

5. 容器管理

指定镜像运行用容器,-d表示后台运行,-p表示指定端口映射,getting-started是镜像名称。

docker run -dp 3000:3000 getting-started


# -i  以交互模式运行容器;-t  为容器重新分配一个伪输入终端;--rm表示容器退出时就把容器删除; --name  为容器指定一个名称
docker run -i -t --name mycentos 镜像名称/镜像ID

docker run常用参数列表

参数作用
-i以交互模式运行容器
-t为容器重新分配一个伪输入终端
–rm表示容器退出时就把容器删除
–restart always开机自动启动
-d后台运行容器
-p指定主机到容器的端口映射,一个端口写一个-p
–name指定容器的名称

修改配置后,重新加载配置

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker

删除容器,正在运行的容器不能被删除

docker rm -f 容器id

删除所有容器,-q表示仅显示容器id

docker rm $(docker ps -aq)

登录容器,按CTRL+D或者exit可以退出

docker exec -it 容器名称/id  /bin/bash

6. 网络配置

查看docker自动创建了哪些网络

docker network ls

7. 限制docker日志

docker默认的日志增长非常快,所以需要进行限制。

sudo vim /etc/docker/daemon.json
# 将如下内容放入daemon.json中,配置后需要重新加载配置
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}

max-size=500m,意味着一个容器日志大小上限是500M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
修改配置后,重新加载配置

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker

volume
容器文件系统的本质是在镜像层上面创建的读写层,运行中的容器对任何文件的修改都存在于该读写层, 当容器被删除时,容器中的读写层也会随之消失。而有的应用,如gitlab代码托管仓库需要持久化数据,volume可以解决这一问题。volume的本质是文件或者目录,它可以绕过默认的联合文件系统,直接以文件或目录的形式存在于宿主机上。 卷的概念不仅解决了数据持久化的问题,还解决了容器间共享数据的问题。

# 创建的卷默认放在/var/lib/docker/volumes/
docker volume create 卷名称
# 列出宿主机中所有的卷,由此可见卷是宿主机上统一管理的
docker volume ls
# 删除卷,删除卷后卷里面的数据不能恢复
docker volume rm 卷名称
# 将已经创建的卷挂载到容器的指定目录下,同一个卷可以挂载到多个容器,从而实现容器间数据共享
# 不过容器本身是为了资源隔离,通过卷的方式共享数据,与资源隔离的理念有冲突
--mount source={volume-name},target={directory}
# 直接使用-v参数,匿名目录挂载,宿主机默认放在/var/lib/docker/volumes/
docker run -v  容器内目录名
# 具名目录挂载,将宿主机内的ovpn-data-first卷挂载到容器内的/etc/openvpn目录
docker run -v ovpn-data-first:/etc/openvpn

8. k8s

从docker20.10起,/var/run/dockershim.sock 文件是不再存在的。对于与 Docker 20.10 兼容的 crictl 版本,您可以使用 containerd 的 CRI 插件版本 v1.20.0。
正确运行crictl的方法。

sudo crictl --runtime-endpoint /run/containerd/containerd.sock version

持续更新中。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值