环境:ubuntu16.04虚拟机,Harbor,Docker
此次的镜像都是从Harbor获取的,我没有管Harbor是如何配置运行的,只管Docker如何拉取镜像,和Docker如何使用进入镜像命令行。
准备工作
了解Docker和Harbor的基本功能,学习docker的基础命令,“镜像”知识,镜像只是一个安装好环境并且有程序的小系统。
ubuntu基本配置(vim,系统语言,输入法,apt镜像源)
ubuntu安装Docker:(引用参考资料1)
- 登陆系统,用你的账号使用sudo全权限
- 更新APT包索引:sudo apt-get update
- 安装docker:sudo apt-get install docker-engine
- 开启docker后台进程:sudo service docker start
- 校验docker是否安装成功:sudo docker run hello-world
Docker操作
公司给了Harbor账户类似gitlab这样的仓库,可以部署在本地(类似SVN),docker是从这上面把镜像拉到本地。(harbor由于部署在公司本地,需要挂载Vp才能访问)
进入Harbor获得镜像资源
点击需要的文件,它直接给了pull命令,点一下复制就好了。
进入终端,拉取镜像
docker pull [地址]
刚开始可能不行,需要先docker login [地址],输入Harbor的账号密码之后,再粘贴复制的pull命令就可以了。
查看本地已保存的镜像
docker images
ubuntu下面的两个就是我pull下来的镜像(pull一次一个,ubuntu这个镜像是用来测试的,忽略)
运行镜像
docker run -itd -p 127.0.0.1:80:8010 [IMAGE ID] /bin/bash
-itd:-i:以交互模式运行容器,-t为容器重新分配一个伪输入终端,-d后台运行容器。一般i和t一起用。
-p:端口映射,格式为:主机(宿主)端口:容器端口 。绑定容器的 8010 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。后面如果项目成功运行了,就可以在ubuntu上启动浏览器,地址栏输入”localhost:80“访问了。
/bin/bash 进入容器之后以linux终端方式提供交互。不加的话,node项目的COMMAND会默认为node控制台。>
执行完毕就会出现这样一串字符。
查看已建立的容器
docker ps -a (docker ps -s 查看正在运行的容器。)
STATUS显示UP就是已经在运行,为Exited就是已停止。
(附:docker stop/start [CONTAINER ID] //停止和启动容器)(docker rm 删除容器)(docker rmi 删除已停止的镜像)
进入容器
docker attach [CONTANT ID] 据说也可以用docker exec (未证实)
(ps:刚输入这条命令之后可能什么都不显示,只要再敲一下回车就出来root@contentid:(你的镜像linux的命令行))
现在就已经处于镜像容器中了,root@后面的用户已经变了,此时就可以用linux的命令来启动服务了,我的项目是node项目,就可以输入npm run xxx命令运行项目。
退出容器
- ctrl+P+Q;退出容器
- 直接在容器终端输入exit或者ctrl+D(注:这两种方式在退出容器的同时,均会把容器关闭,出来之后需要重新docker start)
启动容器
docker stop/start [CONTAINER ID] //停止和启动容器
附:
复制文件到镜像:docker cp '/home/xxxxx' [content-id]:/dev-work/xxxxx
参考资料
- Ubuntu16.04安装docker
- Ubuntu Docker 安装|菜鸟教程
- Docker-在Harbor镜像仓库上推拉镜像
- Docker run 命令
- Docker的容器创建以及基本命令
- ubuntu16.04下vim的安装与配置