Docker
最后更新于:2022-04-02 03:03:25
[TOC]
> [官方镜像列表](https://hub.docker.com/explore/)
> [手册](https://docs.docker.com/engine/install/centos/)
> [在线 docker 试用工具](https://labs.play-with-docker.com/)
## 概述
- 镜像预容器的关系,就想类与实例一样
## 安装
### mac
`brew cask install docker`
### Centos
```
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine -y \
&& sudo yum install -y yum-utils device-mapper-persistent-data lvm2 \
&& sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo \
&& sudo yum makecache fast && sudo yum install docker-ce docker-ce-cli containerd.io
//设置代理
echo '"registry-mirrors": ["https://gz1chk08.mirror.aliyuncs.com"] }' > /etc/docker/daemon.json
/ 启动 docker 服务
systemctl status docker
// 开启启动
systemctl enable docker
```
### Ubuntu,Centos
`curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -`
### 建立 docker 用户组
只有`root`用户和`docker`组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用`root`用户。因此,更好地做法是将需要使用`docker`的用户加入`docker`用户组。
```
sudo groupadd docker
sudo usermod -aG docker $USER
```
## 镜像加速器
## 注册阿里云得到docker镜像
https://cr.console.aliyun.com
##ubuntu /centos
```
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xj5fmf68.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
## Mac
```
docker-machine create --engine-registry-mirror=https://xj5fmf68.mirror.aliyuncs.com -d virtualbox default
docker-machine env default
eval "$(docker-machine env default)"
docker info
```
## windows
```
docker-machine create --engine-registry-mirror=https://xj5fmf68.mirror.aliyuncs.com -d virtualbox default
```
托盘图标内右键菜单选择 Settings
```
{
"registry-mirrors": ["https://xj5fmf68.mirror.aliyuncs.com"]
}
```
### 检查加速器是否生效
```
> docker info |grep "Registry Mirrors"
```
## 启动 docker
```bash
$ service docker start
$ ps aux | grep docker #检查是否开启
$ sudo docker info #查看docke 消息
```
### 备份
```
$ sudo docker run \
--volumes-from dbdata \
-v $(pwd):/backup \
ubuntu tar cvf /backup/backup.tar /dbdata
```
使用 `--volumes-from` 标记来创建一个加载 `dbdata` 容器卷的容器,并从主机挂载当前目录到容器的 `/backup` 目录
容器中的 `/backup`目录下生辰 tar 文件,可在主机得到
### 恢复
如果要恢复数据到一个容器,首先创建一个带有空数据卷的容器 dbdata2。
```
$ sudo docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
```
然后创建另一个容器,挂载 dbdata2 容器卷中的数据卷,并使用`untar`解压备份文件到挂载的容器卷中。
```
$ sudo docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf
/backup/backup.tar
```
为了查看/验证恢复的数据,可以再启动一个容器挂载同样的容器卷来查看
```
$ sudo docker run --volumes-from dbdata2 busybox /bin/ls /dbdata
```
';