简介
略
权限问题
需要sudo权限才能使用docker命令
因为docker使用的Unix Socket文件/var/run/docker.sock
,这个文件的权限受控。
解决办法有3种:
- 切换为root或者使用sudo运行
- 将当前用户添加到docker用户组
- 修改
docker.sock
的权限设置(chmod o+rw
)
推荐第二种方法1
2
3
4
5
6
7
8
9
10cat /etc/group | grep docker # 确认docker用户组是否存在
groups # 确认自己是否在docker用户组中。
# sudo groupadd docker # 如果docker用户组不存在,则添加?添加之后权限没设置能用吗,存疑。不过一般安装好docker后,系统中就存在docker这个用户组了。
sudo gpasswd -a ${USER} docker # 将当前用户添加到docker组
sudo service docker restart
# 重连,起刷新效果,就能用了
使用命令
临时拷贝docker中的文件
1 | docker cp [container id]: [path in docker] [path in host] |
停止/删除所有容器
1 | docker stop $(docker ps -aq) # 停止,之后运行docker ps -a仍有,可以通过docker start重新启动 |
镜像瘦身
xxx
持久化
有三个命令docker commit, docker save, docker export
。我目前图方便,仅使用了最后一个。如下:1
2
3
4
5docker ps # 看容器的唯一id
docker export -o output.tar [container ID]
docker import output.tar [username]/[project]:[version]
docker images # 查看导入的镜像
推送到hub.docker.com
类似于早期的github,虽然免费,但是要求项目公开。否则按需收费。
若想推送,需要先在网站中注册账号,并验证才能上传。1
2
3docker login # 根据Prompt输入账号密码
docker push [username]/[project]:[version] # 这里的[username]必须与dockerhub中注册的用户名一致。如不一致,可以用docker tag添加一个完全相同内容但是不同名字的镜像
docker tag [image name] [username]/[project]:[version]
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。