ubuntu docker 安装
ubuntu 的 docker 安装主要参考的
https://www.runoob.com/docker/ubuntu-docker-install.html
安装完docker 很讨厌每次都要输入sudo 权限
修改sudo权限
- 将用户加入到docker用户组
sudo usermod -aG docker <user>
- 重启docker-daemon
sudo systemctl restart docker
- 给docker.sock添加权限
sudo chmod a+rw /var/run/docker.sock
然后就可以不用每次都加sudo了
更换docker 源
直接用原始的源一方面会比较慢,另一方面偶尔会报类似的错误
Error response from daemon: manifest for opensuse:latest not found
所以更换以下国内的源效果会比较好,这里以阿里源为例
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://v2ltjwbg.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
参考:https://developer.aliyun.com/article/657151
Docker内使用Systemd
在docker的container中运行程序时(该程序在终端中需要root’权限),得到以下错误
Operation not permitted
Docker运行一个容器起来的时候,只是为你提供特定的文件系统层和进程隔离,它给你一个VM的感觉却并不是VM,所以你可能偶尔会想要像在物理机那样使用systemctl start|status|stop来管理服务进程。
所以此时你需要解决特权问题,需要启动systemd进程,在启动镜像的时候,通过加入–privileged参数。
docker run -ti --privileged ubuntu \bin\bash
Dockfile
dockefile 的简单制作可以参考
https://www.runoob.com/docker/docker-dockerfile.html
在build的过程中涉及到一些操作会要求你选择时区,当选好后,系统就卡住,不在继续往下进行了
解决参考
https://askubuntu.com/questions/909277/avoiding-user-interaction-with-tzdata-when-installing-certbot-in-a-docker-contai
Docker image 的拷贝
当我们需要把image拷贝给别人的时候可以通过下面的方式
把image变为压缩文件
docker save -o <path for generated tar file> <image name>
把压缩文件变为image
docker load -i <path to image tar file>
参考:
https://stackoverflow.com/questions/23935141/how-to-copy-docker-images-from-one-host-to-another-without-using-a-repository