Registry:仓库,存放镜像
Images:Docker 镜像
Containers:Docker容器 ,可运行镜像实例
Docker daemon:Docker守护进程,跟客户端建立通信
Docker_Host:Docker主机,运行Docker的宿主机
Client:客户端对Docker进行管理
卸载Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
Centos安装Docker
sudo yum install -y yum-utils
设置Docker仓库地址
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
启动
systemctl start docker
docker version #查看docker版本
docker info #查看docker详细信息
Docker 命令大全 | 菜鸟教程 (runoob.com)
Docker 镜像加速
阿里云镜像加速地址https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录进行配置
阿里云镜像仓库
容器镜像服务 (aliyun.com) 登录网站 ——> 创建镜像 ——>点击镜像——>查看操作指南
IDEA 构建Docker 镜像
-
修改Docker 服务配置
vim /usr/lib/systemd/system/docker.service
在ExecStart变量末尾添加
-H unix:///var/run/docker.sock -H 0.0.0.0:2375
```shell
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock -H 0.0.0.0:2375
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
-
重启Docker服务
systemctl daemon-reload systemctl restart docker
-
添加docker打包插件并配置
<!--docker 打包插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <imageName>demo:3.0</imageName><!--镜像名车--> <baseImage>openjdk:8</baseImage><!--指定基础镜像--> <dockerHost>http://192.168.190.128:2375</dockerHost><!--指定Docker仓库地址--> <!--启动容器执行命令--> <entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint> <exposes>8761</exposes> <!--镜像对外提供端口--> <resources> <resource> <!-- 指定要复制的目录路径,这里是当前目录 --> <targetPath>/</targetPath> <!-- 指定要复制的根目录,这里是target目录 --> <directory>${project.build.directory}</directory> <!-- 指定需要拷贝的文件,这里指最后生成的jar包 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
部署镜像仓库私服
下载registry镜像
docker pull registry
配置镜像仓库私服地址
vim /usr/lib/systemd/system/docker.service
在ExecStart变量末尾添加
--insecure-registry 192.168.137.128:5000
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock -H 0.0.0.0:2375 --insecure-registry 192.168.190.128:5000
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
Docker Daemon添加配置
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.190.128:5000"]
}
重启Docker
systemctl daemon-reload
systemctl restart docker
创建Docker容器并运行
maker /opt/registry
docker run -p 5000:5000 -v /opt/registry:/var/lib/registry --name registry -d registry
访问地址http://192.168.190.128:5000/v2 响应{} 代表镜像仓库私服配置成功
推送
docker tag [ImageId] 192.168.190.128:5000:[镜像版本号]
docker push [ImageId] 192.168.190.128:5000:[镜像版本号]
拉取
docker pull 192.168.190.128:5000:[镜像版本号]
Docker数据卷
创建数据卷
mkder /opt/datas #创建映射共享目录
docker create --name datas -v /opt/datas:/var/datas demo:3.0
docker create --name datas -v /var/datas eurekaservice:1.0 # 创建数据卷容器
创建容器运行并绑定数据卷
docker run -d --name test1 --volumes-from datas -p 8001:8761 eurekaservice:1.0
docker run -d --name test2 --volumes-from datas -p 8002:8761 eurekaservice:1.0
进入容器查看有没有var/datas 目录
docker exec -it test1 bash
docker exec -it test2 bash
在test1容器/var/datas/ 目录下创建 a.txt并写入文本
touch a.txt
echo "adfafasdf" >> /var/datas/a.txt
在test2容器中查看/var/datas/
root@8703ce4d3850:/# ls var/datas/
a.txt
root@8703ce4d3850:/# cat /var/datas/a.txt
adfafasdf
数据备份
打包
docker run --rm -d --name tmp --volumes-from datas -v /opt/datas/:/tmp/datas mysql:5.7 tar -cf /tmp/datas/backup.tar.gz /var/datas
[root@bogon opt]# ls datas/
backup.tar.gz
数据还原
# 删除数据数据卷
docker exec -it test1 bash
rm -rf /var/datas/a.txt
# 数据解压缩到数据卷
docker run -d --rm --volumes-from datas --name tmp -v /opt/datas/:/tmp/datas mysql:5.7 tar -xf /tmp/datas/backup.tar.gz -C /
# 查看内容
docker exec -it test1 bash
cat /var/datas/a.txt
adfafasdf
ddd
Docker容器生命周期(面试)
backup.tar.gz
数据还原
```shell
# 删除数据数据卷
docker exec -it test1 bash
rm -rf /var/datas/a.txt
# 数据解压缩到数据卷
docker run -d --rm --volumes-from datas --name tmp -v /opt/datas/:/tmp/datas mysql:5.7 tar -xf /tmp/datas/backup.tar.gz -C /
# 查看内容
docker exec -it test1 bash
cat /var/datas/a.txt
adfafasdf
ddd