Ubuntu 17.04 x64 安装 Docker CE
Docker
是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker
,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!
无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker
,节约有限的时间。
系统要求
要安装Docker CE
,您需要这些Ubuntu
版本的64位版本:
- Artful 17.10(Docker CE 17.11 Edge及更高版本)
- ZESTY 17.04
- Xenial 16.04(LTS)
- Trusty 14.04(LTS)
Ubuntu x86_64,Linux armhf,s390x(IBM Z)和ppc64le(IBM Power)架构上支持Docker CE
。
卸载旧版本
老版本的Docker
被称为docker
或docker-engine
。如果安装了这些,请将其卸载:
$ apt-get remove docker docker-engine docker.io
使用存储库进行安装
首次在新的主机上安装Docker CE
之前,需要设置Docker
存储库。之后,您可以从存储库安装和更新Docker
。
- 设置存储库
1.更新软件包
1.更新apt
软件包索引:
$ apt-get update
2.设置存储库
2.安装软件包以允许apt
通过HTTPS
使用存储库:
$ apt-get install
apt-transport-https
ca-certificates
curl
software-properties-common
3.添加GPG
密钥
3.添加Docker
的官方GPG
密钥:
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4.设置镜像源
4.添加 Docker 软件源
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
然后,我们需要向 source.list
中添加 Docker
软件源
$ sudo add-apt-repository
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu
$(lsb_release -cs)
stable"
# 官方源
# $ sudo add-apt-repository
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu
# $(lsb_release -cs)
# stable"
以上命令会添加稳定版本的 Docker CE APT
镜像源,如果需要最新或者测试版本的 Docker CE
请将 stable
改为 edge
或者 test
。从 Docker 17.06
开始,edge test
版本的 APT
镜像源也会包含稳定版本的 Docker
。
安装Docker CE
1.更新软件包
1.更新apt软件包索引。
$ apt-get update
2.安装Docker CE
2.安装最新版本的Docker CE,或者转到下一步安装特定版本。任何现有的Docker安装都将被替换。
$ apt-get install docker-ce
3.列出版本
3.在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。此输出被截断。列出可用的版本。
$ apt-cache madison docker-ce
docker-ce | 17.12.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
docker-ce | 17.09.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
docker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
docker-ce | 17.06.2~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
docker-ce | 17.06.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
docker-ce | 17.06.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu zesty/stable amd64 Packages
列表的内容取决于启用了哪个存储库。选择一个特定的版本进行安装。第二列是版本字符串。第三列是存储库名称,它指出了软件包来自哪个存储库,并通过扩展其稳定性级别。要安装特定版本,请将版本字符串附加到包名称,并用等号(=)将它们分开:
$ sudo apt-get install docker-ce=<VERSION>
4.运行镜像
4.通过运行hello-world
映像验证是否正确安装了Docker CE
。
$ docker run hello-world
这个命令下载一个测试图像并在容器中运行。容器运行时,会打印一条信息消息并退出。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:445b2fe9afea8b4aa0b2f27fe49dd6ad130dfe7a8fd0832be5de99625dad47cd
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
以非root用户身份管理Docker
默认情况下,docker
命令会使用 Unix socket
与 Docker
引擎通讯。而只有 root
用户和 docker
组的用户才可以访问 Docker
引擎的 Unix socket
。出于安全考虑,一般 Linux
系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
要创建docker
组并添加您的用户:
1.创建用户组
1.创建docker组。
$ sudo groupadd docker
2.添加用户组
2.将您的用户添加到docker组中。
$ sudo usermod -aG docker $USER
3.注销系统
3.注销并重新登录,如果在虚拟机上进行测试,则可能需要重新启动虚拟机才能使更改生效。
4.运行镜像
4.验证您可以不运行docker
命令sudo
。
$ docker run hello-world
卸载Docker CE
1.卸载
1.卸载Docker CE
软件包:
$ sudo apt-get purge docker-ce
2.删除
2.主机上的图像,容器,卷或自定义配置文件不会自动删除。删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
利用 commit 理解镜像构成
这条命令会用nginx
镜像启动一个容器,命名为 myweb
,并且映射了 80
端口,这样我们可以用浏览器去访问这个 nginx
服务器。
$ docker run --name myweb -d -p 80:80 nginx
直接访问:http://localhost;如果使用的是 Docker Toolbox,或者是在虚拟机、云服务器上安装的 Docker,则需要将 localhost 换为虚拟机地址或者实际云服务器地址。
参考:Docker 官网 Get Docker CE for Ubuntu
Contact
- 作者:鹏磊
- 出处:http://www.ymq.io/2018/01/11/Docker-Install-docker-ce
- Email:admin@souyunku.com
- 版权归作者所有,转载请注明出处
- Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享
- 分享两种圣诞节雪花特效JS代码(网站下雪效果)
- React 移动 web 极致优化
- golang 高效字符串拼接
- Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程
- golang 使用时间通过md5生成token
- golang中对map操作类
- Nginx在线服务状态下平滑升级或新增模块的详细操作记录
- 【Dev Club分享】微信读书iOS性能优化
- [svn: E155004]svn update报database is locked错误的解决办法
- WordPress高亮插件:Crayon Syntax Highlighter加载优化
- 深入理解 ButterKnife,让你的程序学会写代码
- JS+CSS让网站嗨起来,博客要被玩坏了!
- Linux系统zip压缩命令详细参数,附文件排除选项的正确用法
- 浅谈Android自定义锁屏页的发车姿势
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用 DevTools 新增的 Issues 选项卡发现网页问题
- OpenCV绘制标记函数drawMarker()
- 【crossbeam系列】3 crossbeam-deque:work-stealing算法
- 【Rust日报】2020-08-21 RustConf研讨会在线举办
- 了解不同架构思维,赏析架构之美
- 【Rust日报】2020-08-22 google/autocxx - 高度自动化的rust调用c++,而且安全,时尚
- 【Rust日报】2020-08-24 理解 Rust 的切片
- 猿实战05——手把手教你拥有自己的代码生成器
- Java单元测试——容器内部测试
- Java单元测试——框架(三)——testNG
- Nginx系列:后端服务应用健康检测
- 那些大厂必问的Handler和Binder,有必要去研究么?
- 欢迎来到 TreeMap 的吐槽大会
- OMG,12 个精致的 Java 字符串操作小技巧,学它
- Nginx系列:安全下载模块