Ubuntu 简单安装 Docker
1. 普通安装
安装命令:
更新程序包索引,以及添加使用 HTTPS 传输的软件包以及 CA 证书。
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates
添加 Docker 官方软件源的 GPG 密钥(验证所下载软件包的合法性)。
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
需要向source.list
中添加 Docker 软件源,下表列出了不同的 Ubuntu 和 Debian 版本对应的 APT 源。
操作系统版本 | REPO |
---|---|
Precise 12.04 (LTS) | deb https://apt.dockerproject.org/repo ubuntu-precise main |
Trusty 14.04 (LTS) | deb https://apt.dockerproject.org/repo ubuntu-trusty main |
Xenial 16.04 (LTS) | deb https://apt.dockerproject.org/repo ubuntu-xenial main |
Debian 7 Wheezy | deb https://apt.dockerproject.org/repo debian-wheezy main |
Debian 8 Jessie | deb https://apt.dockerproject.org/repo debian-jessie main |
Debian Stretch/Sid | deb https://apt.dockerproject.org/repo debian-stretch main |
用下面的命令将 APT 源添加到 source.list
(将其中的 <REPO>
替换为上表的值):
$ echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
添加成功后,更新 apt 软件包缓存。
$ sudo apt-get update
在一切准备就绪后,就可以安装最新版本的 Docker 了,软件包名称为 docker-engine
。
$ sudo apt-get install docker-engine
如果系统中存在旧版本的 Docker (lxc-docker
, docker.io
),会提示是否先删除,选择是即可。
2. 一键安装脚本
如果觉得上面安装步骤比较麻烦,可以使用一键安装脚本,例如阿里云安装脚本:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
3. 镜像加速器
对于使用 systemd 的系统,用 systemctl enable docker
启用服务后,编辑 /etc/systemd/system/multi-user.target.wants/docker.service
文件,找到 ExecStart=
这一行,在这行最后添加加速器地址 --registry-mirror=<加速器地址>
,如:
ExecStart=/usr/bin/dockerd --registry-mirror=https://kvo9moak.mirror.aliyuncs.com
重新加载配置并且重新启动。
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
Linux 系统下配置完加速器需要检查是否生效,在命令行执行 ps -ef | grep dockerd
,如果从结果中看到了配置的 --registry-mirror
参数说明配置成功。
$ sudo ps -ef | grep dockerd root 5346 1 0 19:03 ? 00:00:00 /usr/bin/dockerd --registry-mirror=https://jxus37ad.mirror.aliyuncs.com $
如果Docker
版本大于 1.13 或 17.05.0-ce,也可以
$ sudo docker info|grep "Registry Mirrors" -A 1 Registry Mirrors: https://registry.docker-cn.com/
4. Docker 常用命令
常用命令 | 说明 |
---|---|
sudo systemctl start docker | 启动 docker 服务 |
sudo systemctl enable docker | 停止 docker 服务 |
sudo docker pull | 从 docker 仓库下载一个镜像 |
sudo docker build | 构建一个镜像 |
sudo docker run | 运行一个容器 |
sudo docker stop | 停止一个容器 |
sudo docker start | 运行一个已经停止的容易 |
sudo docker ps -a | 显示所有的容器,包括未运行的 |
sudo docker ps -l | 显示最近创建的容器 |
sudo docker ps -s | 显示容器总的文件大小 |
sudo docker images | 显示所有的镜像 |
sudo docker rmi | 删除一个镜像 |
sudo docker images -q | 删除所有镜像 |
sudo docker rm | 删除一个容器 |
docker rm $(docker ps -a -q) | 删除所有容器 |
sudo docker logs | 查看日志 |
sudo docker exec -it gitlab bash | 进入 gitlab 容器,并执行 bash 命令(Ctrl + D 退出) |
基本语法
Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker daemon。
- 客户端命令:基本命令格式为
docker [OPTIONS] COMMAND [arg...]
; - 服务端命令:基本命令格式为
docker daemon [OPTIONS]
。
可以通过 man docker
或 docker help
来查看这些命令。
客户端命令选项
- --config="":指定客户端配置文件,默认为
/.docker
; - -D=true|false:是否使用 debug 模式。默认不开启;
- -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock;
- -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别;
- --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否;
- --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径;
- --tlscert= /.docker/cert.pem:TLS 可信证书文件路径;
- --tlscert= /.docker/key.pem:TLS 密钥文件路径;
- --tlsverify=true|false:启用 TLS 校验,默认为否。
daemon 命令选项
- --api-cors-header="":CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 “*”;
- --authorization-plugin="":载入认证的插件;
- -b="":将容器挂载到一个已存在的网桥上。指定为 'none' 时则禁用容器的网络,与 --bip 选项互斥;
- --bip="":让动态创建的 docker0 网桥采用给定的 CIDR 地址; 与 -b 选项互斥;
- --cgroup-parent="":指定 cgroup 的父组,默认 fs cgroup 驱动为
/docker
,systemd cgroup 驱动为system.slice
; - --cluster-store="":构成集群(如 Swarm)时,集群键值数据库服务地址;
- --cluster-advertise="":构成集群时,自身的被访问地址,可以为
host:port
或interface:port
; - --cluster-store-opt="":构成集群时,键值数据库的配置选项;
- --config-file="/etc/docker/daemon.json":daemon 配置文件路径;
- --containerd="":containerd 文件的路径;
- -D, --debug=true|false:是否使用 Debug 模式。缺省为 false;
- --default-gateway="":容器的 IPv4 网关地址,必须在网桥的子网段内;
- --default-gateway-v6="":容器的 IPv6 网关地址;
- --default-ulimit=[]:默认的 ulimit 值;
- --disable-legacy-registry=true|false:是否允许访问旧版本的镜像仓库服务器;
- --dns="":指定容器使用的 DNS 服务器地址;
- --dns-opt="":DNS 选项;
- --dns-search=[]:DNS 搜索域;
- --exec-opt=[]:运行时的执行选项;
- --exec-root="":容器执行状态文件的根路径,默认为
/var/run/docker
; - --fixed-cidr="":限定分配 IPv4 地址范围;
- --fixed-cidr-v6="":限定分配 IPv6 地址范围;
- -G, --group="":分配给 unix 套接字的组,默认为
docker
; - -g, --graph="":Docker 运行时的根路径,默认为
/var/lib/docker
; - -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock;
- --icc=true|false:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。
- --insecure-registry=[]:允许访问给定的非安全仓库服务;
- --ip="":绑定容器端口时候的默认 IP 地址。缺省为 0.0.0.0;
- --ip-forward=true|false:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改;
- --ip-masq=true|false:是否进行地址伪装,用于容器访问外部网络,默认开启;
- --iptables=true|false:是否允许 Docker 添加 iptables 规则。缺省为 true;
- --ipv6=true|false:是否启用 IPv6 支持,默认关闭;
- -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别;
- --label="[]":添加指定的键值对标注;
- --log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none":指定日志后端驱动,默认为 json-file;
- --log-opt=[]:日志后端的选项;
- --mtu=VALUE:指定容器网络的 mtu;
- -p="":指定 daemon 的 PID 文件路径。缺省为
/var/run/docker.pid
; - --raw-logs:输出原始,未加色彩的日志信息;
- --registry-mirror=://:指定
docker pull
时使用的注册服务器镜像地址; - -s, --storage-driver="":指定使用给定的存储后端;
- --selinux-enabled=true|false:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动;
- --storage-opt=[]:驱动后端选项;
- --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否;
- --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径;
- --tlscert= /.docker/cert.pem:TLS 可信证书文件路径;
- --tlscert= /.docker/key.pem:TLS 密钥文件路径;
- --tlsverify=true|false:启用 TLS 校验,默认为否;
- --userland-proxy=true|false:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true;
- --userns-remap=default|uid:gid|user:group|user|uid:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。
客户端命令
可以通过 man docker-COMMAND
或 docker help COMMAND
来查看这些命令的具体用法。
- attach:依附到一个正在运行的容器中;
- build:从一个 Dockerfile 创建一个镜像;
- commit:从一个容器的修改中创建一个新的镜像;
- cp:在容器和本地宿主系统之间复制文件中;
- create:创建一个新容器,但并不运行它;
- diff:检查一个容器内文件系统的修改,包括修改和增加;
- events:从服务端获取实时的事件;
- exec:在运行的容器内执行命令;
- export:导出容器内容为一个 tar 包;
- history:显示一个镜像的历史信息;
- images:列出存在的镜像;
- import:导入一个文件(典型为 tar 包)路径或目录来创建一个本地镜像;
- info:显示一些相关的系统信息;
- inspect:显示一个容器的具体配置信息;
- kill:关闭一个运行中的容器 (包括进程和所有相关资源);
- load:从一个 tar 包中加载一个镜像;
- login:注册或登录到一个 Docker 的仓库服务器;
- logout:从 Docker 的仓库服务器登出;
- logs:获取容器的 log 信息;
- network:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等;
- node:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等;
- pause:暂停一个容器中的所有进程;
- port:查找一个 nat 到一个私有网口的公共口;
- ps:列出主机上的容器;
- pull:从一个Docker的仓库服务器下拉一个镜像或仓库;
- push:将一个镜像或者仓库推送到一个 Docker 的注册服务器;
- rename:重命名一个容器;
- restart:重启一个运行中的容器;
- rm:删除给定的若干个容器;
- rmi:删除给定的若干个镜像;
- run:创建一个新容器,并在其中运行给定命令;
- save:保存一个镜像为 tar 包文件;
- search:在 Docker index 中搜索一个镜像;
- service:管理 Docker 所启动的应用服务,包括创建、更新、删除等;
- start:启动一个容器;
- stats:输出(一个或多个)容器的资源使用统计信息;
- stop:终止一个运行中的容器;
- swarm:管理 Docker swarm 集群,包括创建、加入、退出、更新等;
- tag:为一个镜像打标签;
- top:查看一个容器中的正在运行的进程信息;
- unpause:将一个容器内所有的进程从暂停状态中恢复;
- update:更新指定的若干容器的配置信息;
- version:输出 Docker 的版本信息;
- volume:管理 Docker volume,包括查看、创建、删除等;
- wait:阻塞直到一个容器终止,然后输出它的退出符。
一张图总结 Docker 的命令
以上主要摘自:Docker — 从入门到实践
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/ubuntu-install-docker.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
用 Docker、Gradle 来构建、运行、发布一个 Spring Boot 应用
本文演示了如何用 Docker、Gradle 来构建、运行、发布来一个 Spring Boot 应用。 Docker 简介 Docker 是一个 Linux 容器管理工具包,具备“社交”方面,允许用户发布容器的 image (镜像),并使用别人发布的 image。Docker image 是用于运行容器化进程的方案,在本文中,我们将构建一个简单的 Spring Boot 应用程序。 有关 Docker 的详细介绍,可以移步至 《简述 Docker》 前置条件 JDK 1.8+ Gradle 2.3+ Docker 最新版。有关 Docker 在的安装,可以参阅 《Docker 在 CentOS 下的安装、使用》。 如果你的电脑不是 Linux 系统,最好装个虚拟机,在虚拟机里面装个 Linux ,因为 Docker 的依赖 Linux。 用 Gradle 构建项目 创建目录结构 项目的目录结构因符合 Gradle 的约定。 在 *nix 系统下执行 mkdir -p src/main/java/docker_spring_boot ,生产如下结构 : └── src └── main ...
- 下一篇
有了Docker的程序猿们就能开启“上帝视角”?
现在,如果有程序猿说不知道Docker,这将是难以想象的。 百科是这样描述Docker的。“Docker是dotCloud开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。”而更为通俗的说法是,Docker是轻量的虚拟化技术,它拥有“统一、一次操作和随处运行”的特性。 在很多程序媛心中,这应该是男神级的程序猿了吧 今年是Docker三周年,Docker之父Solomon Hykesgo说出了自己的愿望,“希望Docker社区能够围绕在它的一些核心理念下不断地发展壮大,特别是我希望能够看到在社区里的每一个人更加理解彼此。这是一个非常庞大并且多元化的社区,我们有开发者、运维人员、企业、狂热爱好者、新手以及
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题