基于本地模板导入镜像
假如本地有一个ubuntu系统模板压缩包, 可以通过import导入生成新的镜像
1  | cat ubuntu-18.04.tar.gz | docker import - ubuntu:18.04  | 
存出和导入镜像
存出镜像
1  | docker save -o ubuntu-18.04.tar ubuntu:18.04  | 
导入镜像
1  | docker load -i ubuntu-18.04.tar  | 
导出容器
1  | docker export -o ce.tar ce5  | 
导入容器
1  | docker import ce.tar - ce:v1.0  | 
查看容器内进程
1  | docker top 容器id  | 
docker私有仓库
先拉取registry镜像
1  | docker pull registry  | 
根据registry启动镜像,构造仓库
1  | docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry  | 
然后我们查看本地有哪些镜像,随便选择一个推送上去
1  | docker images  | 
选择一个mongo,我们打个tag,tag前面要写上我们服务器地址和仓库端口号
1  | docker tag mymongo:latest 81.68.86.146:5000/mymongo  | 
推送到私有仓库
1  | docker push 81.68.86.146:5000/mymongo  | 
如果出现了http错误,请修改/etc/docker/daemon.json文件
1  | "insecure-registries": ["81.68.86.146:5000"]  | 
然后重启docker服务
1  | sudo systemctl daemon-reload  | 
重启docker
1  | docker restart $(docker ps -aq)  | 
这样再次push就可以将镜像push到docker私有仓库了。
利用容器卷备份和迁移数据
1 备份,可以将数据备份至挂在目录,这样外界就可以访问并获取了。
用ubuntu镜像启动一个新的容器worker,该容器和dbdata容器共享卷, worker启动后将/dbdata下的数据打包放在/backup下
1  | docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata  | 
2 还原
启动一个容器,挂在/dbdata目录
1  | docker run -v /dbdata --name dbdata2 ubuntu /bin/bash  | 
再用ubuntu 启动一个新的镜像,共享dbdata2容器的卷
1  | docker run --volume-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar  | 
docker 设置ssh
1 拉取ubuntu镜像
1  | docker pull ubuntu:18.04  | 
2 启动ubuntu容器,将22端口映射为1022端口
1  | docker run -it -p 1022:22 ubuntu:18.04  | 
3 在容器中安装如下应用
1  | apt-get update  | 
然后vim /etc/ssh/sshd_config
将PermitRootLogin设置为yes
创建文件夹
1  | mkdir -p /var/run/sshd  | 
然后启动服务
1  | /usr/sbin/sshd -D &  | 
这时我们查看网路端口
1  | netstat -tunpl  | 
可以看到22端口启动了
为了让容器启动时可以自启动ssh服务,我们实现一个脚本
vim /run.sh添加如下
1  | 
  | 
然后赋予这个脚本执行权限
1  | chmod +x /run.sh  | 
然后exit退出,基于改造的docker提交新的镜像
1  | docker commit cafd85cb0645 ubuntu:ssh  | 
然后我们基于这个镜像启动新的容器
1  | docker run -d --name ubuntu-ssh -p 1022:22 ca1a463f5c99 /run.sh  | 
因为ssh登录需要账户名和密码,账户名为root,密码我们进入容器设置下
1  | docker exec -it 28afa8e39353 /bin/bash  | 
安装后输入passwd,设置密码.
之后通过ssh连接就可以了
1  | ssh root@172.98.23.45 -p 1022  | 
感谢关注我的公众号
