我的Docker学习笔记。
Docker Hello World
Docker架构
三个基本概念:
- 镜像(Image):类似于面向对象中的类;
- 容器(Container):类似于面向对象中的对象;
- 仓库(Repository):用于保存镜像;
Docker常用命令
容器生命周期管理
| 功能 | 命令 |
|---|---|
| 创建一个新的容器并运行一个命令 | docker run |
| 启动/停止/重启容器 | docker start/stop/restart |
| 杀掉一个运行中的容器 | docker kill |
| 删除一个或多个容器 | docker rm |
容器操作
| 功能 | 命令 |
|---|---|
| 列出容器 | docker ps |
镜像仓库
| 功能 | 命令 |
|---|---|
| 登入/登出一个Docker镜像仓库 | docker login/logout |
| 从镜像仓库中拉取或者更新指定镜像 | docker pull |
| 将本地的镜像上传到镜像仓库 | docker push |
本地镜像管理
| 功能 | 命令 |
|---|---|
| 列出本地镜像 | docker images |
| 删除本地一个或多个镜像 | docker rmi |
Docker容器创建和管理
解决运行Docker需要sudo问题
产生原因
Docker进程使用Unix socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
解决方法
-
查看用户组:
cat /etc/group | grep docker -
如果未创建,在此步创建用户组,若已创建,执行下一步:
sudo groupadd docker -
将用户加入到用户组:
sudo usermod -aG docker <用户名> -
检查是否成功加入:
cat /etc/group -
重启Docker:
sudo systemctl restart docker -
给
docker.sock文件添加权限:sudo chmod a+rw /var/run/docker.sock -
确认是否解决:
docker run hello-world