最新消息:重新回归WordPress,我要比较认真的开始更新我的博客了。

Docker使用小结

服务器相关 hanlei 1900浏览

知道docker然后了解docker,已经过去很长时间了。一直没有机会实践使用一下,其实也是因为对docker的用途还是很没有概念。今天之所以会研究并使用docker是因为在群辉上只有通过docker才能实现更多可能。

今天要装一个SQLSERVER2000,于是在docker镜像库上搜索了sqlserver,并找到了sqlserver2000的镜像,使用命令下载到本地。

docker pull rsmoorthy/mssql

然后可以查看本地的镜像

docker images

也可以添加本地的镜像文件到镜像

docker load -i=/path/file.tgz

然后就可以用这个镜像文件来创建一个容器,就是一个docker实例。

docker create rsmoorthy/mssql

docker create是一个大命令有很多参数可以用,实际使用中也会需要用到很多,可以自己多看看docker create –help

在群辉的管理界面可以直接视图化操作,比如填加端口映射、运行容器,将sqlserver的端口1433从主机映射到容器。然后用sql server management studio 连接发现数据库已经在运行,就这么间单。

但是我发现这个镜像是有问题的,没办法改SA的密码。试过能想到的所有方法后放弃了。不过这个镜像的介绍里详细说明了镜像的制作过程,于是就自己重新做了一个。

附上sqlserver2000镜像的制作方法,因为docker的镜像大都功能不全,所以最好直接使用已经安装好wine的docker镜像,再在上面安装sqlserver2000,会容易很多。

https://github.com/rsmoorthy/docker/blob/master/sql2000/how_installed.md

常用命令

//修改容器参数
docker container update --restart=always container_name


//修改容器启动命令,生成新的镜像
docker commit --change="WORKDIR /root" -c 'CMD ["python","main.py"]' container_name new_image_name:new_tag

docker镜像的导入和导出

依据具体使用场景来选择命令
若是只想备份images,使用save、load即可
若是在启动容器后,容器内容有变化,需要备份,则使用export、import

save

docker save [options] images [images...]
docker save -o nginx.tar nginx:latest
docker save > nginx.tar nginx:latest

load

docker load [options]
docker load -i nginx.tar
docker load < nginx.tar

export

docker export [options] container
docker export -o nginx-test.tar nginx-test

import

docker import [options] file|URL|- [REPOSITORY[:TAG]]
docker import nginx-test.tar nginx:imp
cat nginx-test.tar | docker import - nginx:imp

export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。

转载请注明:HANLEI'BLOG » Docker使用小结