搭建docker环境
如果你过去安装过 docker,先删掉:
sudo apt-get remove docker docker-engine docker.io
首先安装依赖:
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
如果你是树莓派或其它ARM架构计算机,请运行:
echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list
最后安装
sudo apt-get updatesudo apt-get install docker-ce
使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装,另外可以通过 --mirror
选项使用国内源进行安装:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun#
$ sudo sh get-docker.sh --mirror AzureChinaCloud
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。
启动 Docker CE
$ sudo systemctl enable docker$ sudo systemctl start docker
建立 docker 用户组
默认情况下,docker
命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root
用户和 docker
组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
建立 docker
组:
$ sudo groupadd docker
将当前用户加入 docker
组:
$ sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
测试 Docker 是否安装正确
$ docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world4ee5c797bcd7: Pull complete Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4eStatus: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (arm32v7)3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/
docker-compose的安装
开始是找的国内的镜像,但是下载一直是8k的文件不能执行打开就是文件下载失败这种内容,可能是我这个网络问题
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
后面我找到别的资源
至此Docker就安装好了,再安装docker compose。
先看有没有pip或pip3,有就直接卸了。然后安装:
Bash
$ apt-get remove python-pip python3-pip
$ wget https://bootstrap.pypa.io/get-pip.py$ python get-pip.py$ python3 get-pip.py
然后安装一些依赖库
apt install python-dev python3-dev libevent-dev python-scipy libssl-dev libffi-devapt install apt-transport-https ca-certificates curl gnupg2 software-properties-commonpip install cryptography
查看pip版本:
root@raspberrypi:~# pip3 --versionpip 19.1.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)root@raspberrypi:~#
安装docker compose
这里通过pip的方式安装,所以先安装pip
$ pip3 install docker-compose
如果你报了什么
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
这样的错误,多半是用了上古时代的pip,参考上述方式卸载重装,然后重启一下。如果是下面这样的错
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out.
是由于网络连接超时,重新执行命令就好,或者用国内镜像下载。可以多试几次
安装好了查看版本:
root@raspberrypi:~# docker-compose --versiondocker-compose version 1.24.1, build 4667896root@raspberrypi:~#
sudo pip3 install docker-compose
设置docker镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像加速器 镜像加速器地址 专属加速器? 其它加速? |
---|
Docker 中国官方镜像 https://registry.docker-cn.com |
Docker Hub DaoCloud 镜像站 http://f1361db2.m.daocloud.io 可登录,系统分配 |
Docker Hub Azure 中国镜像 https://dockerhub.azk8s.cn |
Docker Hub、GCR、Quay 科大镜像站 https://docker.mirrors.ustc.edu.cn |
Docker Hub、GCR、Quay 阿里云 https://.mirror.aliyuncs.com 需登录,系统分配 |
Docker Hub 七牛云 https://reg-mirror.qiniu.com |
Docker Hub、GCR、Quay 网易云 https://hub-mirror.c.163.com |
Docker Hub 腾讯云 https://mirror.ccs.tencentyun.com |
作者:y0ngb1n链接:https://juejin.im/post/5cd2cf01f265da0374189441来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
### docker命令
#查看 Docker 版本
docker -``vsudo
# 仓库/镜像:版本(留空的话默认为 latest)
docker pull
sudo docker run
# 加参数,用来创建容器查看运行容器
sudo docker ps
#查看所有下载的镜像
sudo docker images
#进入容器终端
sudo docker exec -i -t ha /bin/bash
#实时查看10行的 ha 日志
sudo docker logs -f -t --tail 10 ha
#重启
sudo systemctl daemon-reload
#设置 Docker 开机启动
sudo systemctl enable docker
#开启 Docker 服务
sudo systemctl start docker
常用配置和工具命令
#查看 Docker 版本docker -vsudo docker pull 仓库/镜像:版本(留空的话默认为 latest)sudo docker run 加参数,用来创建容器#查看运行容器sudo docker ps#查看所有下载的镜像sudo docker images#进入容器终端sudo docker exec -i -t ha /bin/bash#实时查看10行的 ha 日志sudo docker logs -f -t --tail 10 ha#重启 systemctl 守护进程sudo systemctl daemon-reload#设置 Docker 开机启动sudo systemctl enable docker#开启 Docker 服务sudo systemctl start docker #下载 Docker 图形化界面 portainersudo docker pull portainer/portainer#创建 portainer 容器sudo docker volume create portainer_data#运行 portainersudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run
部署
docker images,docker ps
docker pull nextcloud
docker pull portainer/portainer
docker run -ti -d --name kevin-portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainerdocker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
docker run --name=my_portainer -d -p 9001:9001 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_volume:/data portainer/portainer该容器命名为my_portainer,将容器中portainer默认端口9000,映射到宿主机端口9000,使用socket映射 /var/run/docker.sock:/var/run/docker.sock,指定volume映射(即将portainer_volume对应的宿主机目录挂载到容器的/data目录),容器基于portainer/portainer镜像启动
mkdir /home/nextclouddocker run --name nextcloud -p 8080:80 -v /home/nextcloud:/var/www/html/data -d nextcloud参数说明:–name:设定容器名称为nextcloud-p 8080:80 :端口映射,将宿主机8080端口映射到容器中的80端口-v /data/nextcloud:/var/www/html/data将容器中项目的data目录映射到本地/data/nextcloud目录下方便配置和数据保存-d 是以后台形式启动
https://cloud.tencent.com/developer/article/1371476
中间找不文件就选择下面这个命令
cd /var/lib/find . -name "config.php"