本来是想装一下es,突发奇想,装docker里吧(mac系统,旧版本1.10的docker),—只是安装,其他在别的页面里介绍
如何删除旧版本,现在看官网都17.x了,差了这么多,都发生了什么?(已经删除了,没抓到图)
找出所有虚拟机
docker-machine ls
.删除虚拟机,有一列叫
NAME
的,比如叫default
,执行docker-machine rm default
,这样删除从VirtualBox和~/.docker/machine/machines目录中的虚拟机文件.从应用程序中删除那两应用程序
Quickstart Terminal
和Kitematic
.从/usr/local/bin文件夹中删除docker, docker-compose和 docker-machine命令文件:
rm /usr/local/bin/docker
.删除
~/.docker
连接阿里云上的centos7,…..,一会回来再试mac.
需要64位的centos7
,删除旧版本docker,前提是yum装的
yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine
同时删除/var/lib/docker
的内容
准备安装,之前有个问题,Docker CE(Community Edition)还是EE(Enterprise Edition)? 有几个选择(官网上说的)
ee版本比ce安全.从名字上就能看出来:企业版,社区版.
看清楚自己的操作系统,支持哪种,对比说明,centos都可以支持.
联网没? 如果没联网就下载rpm包手动安装.
我联网,那就装个社区版吧.因为mac上只能装个ce版.
安装需要的包:yum-utils=>yum-config-manager;device-mapper-persistent-data和lvm2=>devicemapper存储驱动程序
yum install -y yum-utils device-mapper-persistent-data lvm2
yum源更新
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
边缘存储库的启用和禁用
yum-config-manager --enable docker-ce-edge yum-config-manager --disable docker-ce-edge
更新yum索引包,我是一路y下去的.并没去认真核对
Fingerprint
yum makecache fast
安装
yum install docker-ce
查看,官网说,如果在生产系统上,应该安装特定版本的docker,而不是始终使用最新版本. 下面命令列出可以用的版本.
yum list docker-ce.x86_64 --showduplicates |sort -r
如果安装特定版本,版本号是
-
分割,不是@yum install docker-ce-<VERSION>
配置
/etc/docker/daemon.json
mkdir /etc/docker cd /etc/docker vim deamon.json { "storage-driver": "devicemapper" }
生产环境下,必须是direct-lvm模式.在启动之前先看一下这个,很重要的样子.
运行docker
sudo systemctl start docker
测试
docker run hello-world
到此为止,安装上没出现什么问题,很顺利的出现了Hello from docker!...
如何从安装包安装.
- 下载rpm安装包
- yum install /path/to/package.rpm
其他就一样了.
卸载
卸载包
yum remove docker-ce
删除文件
rm -rf /var/lib/docker
- 如有必要,彻底的删除
devicemapper
,再格式化..
回到mac,继续安装,下载先.下个稳定版吧,docker.app,110M,双击安装.
之前旧版本,装的VirtualBox,现在官网上说有新的虚拟化系统HyperKit
.
mac环境要求,系统月新越好,10.11版本以后;至少4G内存;4.3.30的virtualBox不能装docker.
Docker.app启动后,要求使用系统密码进行授权。安装Docker应用的网络组件和链接。看系统的导航条,多了一条蓝鲸..黑色的.点击下拉里,黄点变成绿点,就表示docker跑起来了.
常用命令:
检查版本.
$ docker --version Docker version 17.03.0-ce, build 60ccb22 $ docker-compose --version docker-compose version 1.11.2, build dfed245 $ docker-machine --version docker-machine version 0.10.0, build 76ed2a6
测试hello-world
docker run hello-world
nginx安装测试
docker run -d -p 80:80 --name webserver nginx
-d表示在后台运行,-p是端口,把Container的80端口映射到本机的80端口,前面是本机端口,后面是容器端口,这样就直接能访问了.看样子在下载,等会.如果中间ctl+c后,会重新下载.
➜ ~ docker run -d -p 80:80 --name webserver nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx ff3d52d8f55f: Downloading [===> ] 1.474 MB/23.28 MB 226f4ec56ba3: Downloading [====> ] 1.834 MB/21.53 MB 53d7dd52b97d: Download complete
浏览器输入 http://localhost/ 就可以看到nginx的主页了…我看到了别的主页,和apache冲突了.把机子上现有的服务都停了.
sudo /usr/sbin/apachectl stop sudo nginx -s stop
再次执行
➜ ~ docker run -d -p 80:80 –name webserver nginx
docker: Error response from daemon: Conflict. The container name “/webserver” is already in use by container 96e54ca074b9bf70b3b31cd580c5066d38562c275b0c99678dff2efc295cd87a. You have to remove (or rename) that container to be able to reuse that name..
See ‘docker run –help’.那么直接开始
docker start webserver
再浏览器输入 http://localhost/ ,好了.用
docker ps
查看情况.如果关闭,用docker stop webserver
停止了的服务只能用
docker ps -a
来查看状态.停止并删除容器
docker rm -f webserver
列出镜像
docker images
删除镜像
docker rmi 镜像id|镜像名称 docker rmi nginx
查看日志
docker logs -f 96e5
查看web的容器的配置和状态信息….
docker inspect webserver
查看进程
docker top webserver
列出docker镜像.
docker images REPOSTITORY:表示镜像的仓库源 TAG:版本 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
同一个镜像仓库里可以存放多个同一个镜像的不同版本,想使用哪个版本
docker run -t -i ubuntu:14.04 /bin/bash 如果不指定版本,那就是ubuntu:latest版本
下载一个镜像
docker pull ubuntu:14.04
查找官方有什么镜像,OFFICIAL:是否docker官方发布
docker search httpd
以后的事情,看官网吧,反正经常会变.
保存对容器的修改
查看修改的容器获取id: docker ps -l 生成新的镜像: `docker commit 容器id 新镜像名` 例如: docker commit abc test 新镜像查看: docker images
查看镜像详细信息
docker inspect 镜像名 : 标签
查看镜像历史
docker history 镜像名 : 标签
添加镜像标签
docker tag 旧镜像名:旧标签 新镜像名:新标签
将本地的文件传入docker容器
docker cp 本地文件路径 ID全称:容器存放路径
如何获取容器ID全称
docker inspect -f '{{.Id}}' 容器名或者id