Docker知识总结以及遇到的问题汇总(持续更新)
报错
错误1:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
常见的解决方法csdn上都有,但是还有可能是一些阴间的原因
如果csdn上的方法都没用的话,可以检查下/etc/docker/key.json
文件是否正确,问题包括但不限于:
- 缺少花括号等语法错误
- 出现了错误的键值对,有冗余内容
正确的格式应当类似如下内容:
1 | { |
tips:还可以使用命令sudo dockerd --debug
,它会显示出当前产生的错误,非常直观
知识总结
更改用户权限
1 | sudo groupadd docker #添加docker用户组 |
这样再使用命令就不用加sudo
了
让容器在后台持续运行
创建容器时加入-d
参数或者在进入容器时加入-d
进入指定容器
使用命令
1 | docker exec -it 容器id或name /bin/bash |
建议在创建容器时指定一个名字方便记忆
使用vscode远程连接容器
方法一
服务器端
与连接服务器一致,缺点时当你的ssh配置里同时有主机的配置和容器的配置,vscode会默认选择靠前设置的端口,远程连接主机和容器需要更改ssh配置文件
- 首先在创建容器时就为它指定一个端口,例如
1 | docker run -it -p 8888:22 testimage |
(以下操作均在容器内进行)
- 进入容器后下载openssh
1 | apt-get update |
- 设置root密码
1 | passwd |
- 然后设置两遍相同的密码,之后登陆的时候要用到,之后修改配置文件
1 | vim /etc/ssh/sshd_config |
- 注释掉
PermitRootLogin prohibit-password
这一行 添加这一行PermitRootLogin yes
并重启ssh服务
1 | service ssh restart |
- 在cmd上测试
1 | ssh -p 8888 root@你的IP地址 |
设置免密登录(也适用于免密登录一个你没有root权限的服务器)
在
root
目录下新建.ssh
目录,并在其中创建authorized_keys
文件,将本地机上的公钥拷贝进去然后赋予公钥文件权限,在.ssh文件夹下输入命令
1
chmod 755 authorized_keys
vscode端
与连接服务器操作相同
方法二
使用vscode连接到你的服务器或虚拟机,下载docker插件
之后重启就会发现在左边有一个标志,点击这个界面可以看到当前的所有镜像和容器
右键点击某个容器,选择Attach Visual Studio Code
之后会跳转新窗口,就和连接普通服务器一样了
缺点:启动时非常慢,而且要跳转两个窗口,很烦
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Spike的个人博客!
评论