docker 进阶操作
docker进阶操作
1拷贝文件
1 docker cp 1.txt mycentos2:/home 从宿主机拷贝文件到容器内部
2 docker cp mycentos2:/home/1.txt /home/1.txt 从容器往外拷贝,不需要进入容器内部
2 目录挂载
docker run -di -v /home/lqz:/home --name=mycentos3 centos:centos7
3 删除容器
docker rm 容器id/名字 删除容器
4 查看容器的ip地址
1 查看容器详情:docker inspect 容器名字/id NetworkSettings下的IPAddress是容器的ip地址
2 查看容器ip docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
4 服务部署
部署mysql
拉取:docker pull mysql:5.6
启动:docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
远程连接宿主机的3306端口,即可连接到容器的mysql服务
部署redis
docker pull redis 不加tag ,拉最新的版本,也就是lasted版本
docker run -di --name=myredis -p 6379:6379 redis 启动redis
远程连接即可
5 迁移与备份
将容器保存为镜像
docker commit 容器名字 要打包成的镜像名字
docker commit mycentos2 lqz_centos7
基于打包好的镜像,再跑起容器来,那么容器内部原来装的软件,都会有
docker run -di --name=lqz_centos7_1 lqz_centos7:latest
启动起容器来,软件都会有
镜像备份
docker save -o lqz_centos7.tar lqz_centos7
镜像恢复
docker load -i lqz_centos7.tar
6 私有仓库
私有仓库就是给公司内部用的,我搞好了一个镜像,如果你要的话我就可以给你,但是用u盘考来考去会非常麻烦,所以就有了一个私有仓库,你需要在自己创建一个私有仓库,然后上传镜像,别人就可以访问你的私有仓库来拉这个镜像。
私有仓库也是一个容器,你也要把它跑起来,别人才能访问,不然是不能访问的,你可以把她理解成为一个网站,别人可以登录这个网站下载你上传的镜像。
1 docker pull registry 拉下一个镜像
2 docker run -di --name=registry -p 5000:5000 registry 启动镜像形成容器
3 打开浏览器 输入地址http://101.133.225.166:5000/v2/_catalog 没有上传镜像,是空的 {"repositories":[]}
http://112.124.28.149:5000/v2/_catalog
配置私有仓库
vi /etc/docker/daemon.json
{"insecure-registries":["101.133.225.166:5000"]}
重启docker 服务
systemctl restart docker
重启registry的容器
docker restart registry
上传到私有仓库
打标签 (打标签一定要注意,标签名字一定是 ‘ ip:port/随便起 ’这样的形式)
docker tag lqz_centos7 101.133.225.166:5000/lqz_centos7
上传标记的镜像
docker push 101.133.225.166:5000/lqz_centos7
本地删除镜像后,可以从私有仓库拉下来
docker pull 101.133.225.166:5000/lqz_centos7
再跑起容器,内部就有aaa bbb文件夹