Docker——MacOS上安装运行docker
近几年来,Docker越来越流行,使用场景也越来越广泛。为了能尽快跟上时代步伐、学习并应用到实际工作中,我也开始了Docker之旅。
Docker版本
Docker共有两种版本:
- 社区版(Community Edition,简称CE)
- stable更新渠道:提供可靠的功能,每季度一次;
- edge/beta更新渠道:新功能版本,每个月一次;
- 企业版(Enterprise Edition,简称EE)
- 企业基础版;
- 企业标准版;
- 企业高级版;
Docker社区版适用于开发者和小型团队,而企业版是为企业开发和IT团队设计。所以,它们对各种功能的支持程度也有所差异。我的学习阶段自然要使用社区版。
支持的平台
Docker CE和EE均支持运行在多种平台、云服务器和本机环境上。
我使用的是Mac,选取的版本是CE for Mac的stable版本:
https://download.docker.com/mac/stable/Docker.dmg
安装和运行Docker for Mac
- Docker.dmg下载完成后,双击进行安装。
- 安装完成后,在“应用”文件夹中双击Docker即可运行。
- Docker运行后,其图标会出现Mac的状态栏里。
Docker for Mac安装包包含了Docker Engine、 Docker命令行客户端, Docker Compose、Docker Machine和Kitematic,使用如下命令查看其版本号:
$ docker --version
Docker version 17.12.0-ce, build c97c6d6
$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
$ docker-machine --version
docker-machine version 0.13.0, build 9ba6da9
运行应用
- 打开终端,通过运行简易的Docker镜像
hello-world
来测试安装包是否可以运行。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
再次运行上面命令时,则会显示:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
由上可知,先尝试从本地启动,如果不存在,则从Docker Hub上拉取最新版本。
另外,这里的hello-world
并不是随意输入的,它是Docker的一个简易镜像,如果随意输入一个名词,则返回如下:
$ docker run hello-everyone
Unable to find image 'hello-everyone:latest' locally
docker: Error response from daemon: pull access denied for hello-everyone, repository does not exist or may require 'docker login'.
See 'docker run --help'.
- 运行一个Docker的web服务器。和hello-world镜像一样,如果本地不存在,则会从Docker Hub上拉取。
$ docker run -d -p 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
2a72cbf407d6: Pull complete
eccc107d7abd: Pull complete
76aa3935d77c: Pull complete
Digest: sha256:f6e250eaa36af608af9ed1e4751f063f0ca0f5310b1a5d3ad9583047256f37f6
Status: Downloaded newer image for nginx:latest
7944bbef2c428b1a53c0a77e270e0820bb2e7903c7c8d3fc1bd95b48f4be27fe
再一次运行这条命令,则会报错,原因是命名为webserver
的服务器已经在使用中,所以可以重新指定一个新名称:
$ 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 "7944bbef2c428b1a53c0a77e270e0820bb2e7903c7c8d3fc1bd95b48f4be27fe". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
$ docker run -d -p 80:80 --name webserver_new nginx
e57fcb026c02be91929072c4aaa33a6f0420faad8a97f7d8b64f867e59a86772
- 在浏览器里运行
http://localhost/
,页面显示如下内容:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.
Thank you for using nginx.
- 在web服务器运行过程中,可以使用命令
docker container ls
或docker ps
,查看容器内的详细情况:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cc824a7e65b nginx "nginx -g 'daemon of…" 24 seconds ago Up 31 seconds 0.0.0.0:80->80/tcp webserver
或
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cc824a7e65b nginx "nginx -g 'daemon of…" 32 seconds ago Up 39 seconds 0.0.0.0:80->80/tcp webserver
- 在删除容器之前需要停止容器,否则会报错:
$ docker container rm webserver
Error response from daemon: You cannot remove a running container 6cc824a7e65b0918d9fb78cfd6b54bd95c004e38a98080a30bec1b4fd7cba511. Stop the container before attempting removal or force remove
$ docker container stop webserver
webserver
再次查看,之前运行的web服务器已不显示了:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
如同linux的ls -a
命令,docker container ls -a
能够列出所有的容器:
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cc824a7e65b nginx "nginx -g 'daemon of…" 4 minutes ago Exited (0) 8 seconds ago webserver
da856b22da04 hello-world "/hello" 15 minutes ago Exited (0) 15 minutes ago practical_varahamihira
317006e2577e hello-world "/hello" 2 hours ago Exited (0) 2 hours ago modest_mclean
72b715c6514b hello-world "/hello" 7 weeks ago Exited (0) 7 weeks ago compassionate_benz
删除webserver容器,使用命令:
$ docker container rm webserver
webserver
再次查看所有容器,原先的webserver容器已经不存在了:
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da856b22da04 hello-world "/hello" 15 minutes ago Exited (0) 16 minutes ago practical_varahamihira
317006e2577e hello-world "/hello" 2 hours ago Exited (0) 2 hours ago modest_mclean
72b715c6514b hello-world "/hello" 7 weeks ago Exited (0) 7 weeks ago compassionate_benz
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 73acd1f0cfad 4 days ago 109MB
hello-world latest f2a91732366c 3 months ago 1.85kB
$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:f6e250eaa36af608af9ed1e4751f063f0ca0f5310b1a5d3ad9583047256f37f6
Deleted: sha256:73acd1f0cfadf6f56d30351ac633056a4fb50d455fd95b229f564ff0a7adecda
Deleted: sha256:660d894d7e1779b260ce69426dced9f1750deb8a6505f052f61a9876991e73e6
Deleted: sha256:97e86b3c85516c6f3c848ee0df11bebe95154a567046225f1cd3a690fd22687e
Deleted: sha256:3358360aedad76edf49d0022818228d959d20a4cccc55d01c32f8b62e226e2c2
再次查看镜像:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 3 months ago 1.85kB
相关链接
https://docs.docker.com/docker-for-mac/install/
https://download.docker.com/mac/stable/Docker.dmg
https://docs.docker.com/docker-for-mac/
https://hub.docker.com/_/hello-world/
Docker——MacOS上安装运行docker的更多相关文章
- Windows OS上安装运行Apache Kafka教程
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...
- 基于Python在MacOS上安装robotframework-ride
基于Python在MacOS上安装robotframework-ride https://www.jb51.net/article/153665.htm https://www.jianshu.com ...
- Windows上安装运行Spark
1.下载Scala: https://www.scala-lang.org/download/ ①注意:必须下载官方要求的JDK版本,并设置JAVA_HOME,否则后面将出现很多麻烦! ②Scala当 ...
- 如何将docker 镜像上传到docker hub仓库
如何将docker 镜像上传到docker hub仓库 目录 如何将docker 镜像上传到docker hub仓库 背景 1.注册docker hub账号 2.docker hub上创建仓库 3.d ...
- 在docker上安装运行mysql实例
ps:实验环境是:CentOS Linux release 7.3 64位1.获取mysql镜像从docker hub的仓库中拉取mysql镜像docker pull mysql查看镜像docker ...
- Centos7基于容器安装运行Docker私有仓库及添加认证
一.前言 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理 ...
- Centos上安装配置docker(命令集)
导出镜像存储: docker save house/redis:3.2 > redis_img.tar (也可以使用镜像ID) 导入镜像存储: docker load < redis_ ...
- 如何在Centos7上安装&使用docker
Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且 ...
- [原创]在Linux系统Ubuntu14.04上安装部署docker。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
随机推荐
- HDUOJ ---1269迷宫城堡
http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- hduoj---Tempter of the Bone
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- nyoj-----D的小L
D的小L 时间限制:4000 ms | 内存限制:65535 KB 难度:2 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡 ...
- Google Map 形状显示
添加多段线 Polyline 构造函数带有一组用于指定线的 LatLng 坐标的 PolylineOptions,以及一组用于调整多段线视觉行为的样式. Polyline 对象在地图上绘制为一系列直线 ...
- nginx实战三
nginx正向代理 https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/z_proxy.md Nginx正向代理使用场景并不多见 ...
- .Net程序猿玩转Android开发---(11)页面跳转
在不论什么程序开发中,都会遇到页面之间跳转的情况,Android开发也不例外.这一节,我们来认识下Android项目中如何进行页面跳转.页面跳转分为有參数和无參数页面跳转,已经接受还有一个页面的返回值 ...
- Creating the Help Page in ASP.NET Web API
Introduction In this article we will define the process of creating the help page in the ASP .NET We ...
- mod_fastcgi和mod_fcgid的区别
mod_fcgid是一个跟mod_fastcgi二进制兼容的Apache module. 原 来的mod_fastcgi因为实现方式的限制,所以可能会创建了很多不必要的进程,而实际上只需要更少的进程就 ...
- Maven Docker镜像使用技巧
摘要: Maven是目前最流行的Java项目管理工具之一,提供了强大的包依赖管理和应用构建功能.本文以Maven为例介绍了Docker在应用构建中的一些常见技巧. Maven是目前最流行的Java项目 ...
- 关于UI测试
分为UI逻辑测试和UI显示测试两部分.要根据不同的面板状态进行测试 状态 -UI逻辑 -显示测试 一般优先做UI逻辑测试,后做显示测试.因为显示内容要经常变动,而且看的始终比代码测的准.去测显示测试会 ...