Docker 需要安装在 64 位的 x86 平台或 ARM 平台上(如树莓派),并且要求内核版本不低于 3.10。但实际上内核越新越好,过低的内核版本可能会出现部分功能无法使用,或者不稳定。
用户可以通过如下命令检查自己的内核版本详细信息:
$ uname -a
Linux device 4.4.0-45-generic #66~14.04.1-Ubuntu SMP Wed Oct 19 15:05:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
2.使用脚本自动安装
Docker 官方为了简化安装流程,提供了一套安装脚本,Ubuntu 和 Debian 系统可以使用这套脚本安装:
curl -sSL https://get.docker.com/ | sh
阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
DaoCloud 的安装脚本
curl -sSL https://get.daocloud.io/docker | sh
3.启动 Docker 引擎
Ubuntu 16.04、Debian 8 Jessie/Stretch
$ sudo systemctl enable docker
$ sudo systemctl start docker
4.获取镜像
$ docker pull ubuntu:14.04
14.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
e8988b5b3097: Pull complete
40af181810e7: Pull complete
e6f7c7e5c03e: Pull complete
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Status: Downloaded newer image for ubuntu:14.04
5.运行
有了镜像后,我们就可以以这个镜像为基础启动一个容器来运行。以上面的 ubuntu:14.04 为例,如果我们打算启动里面的 bash 并且进行交互式操作的话,可以执行下面的命令。
$ docker run -it --rm ubuntu:14.04 bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@e7009c6ce357:/# exit
exit
$
虚悬镜像
由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none> 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:
$ docker images -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 00285df0df87 5 days ago 342 MB
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
$ docker rmi $(docker images -q -f dangling=true)
中间层镜像
为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 docker images 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数。
$ docker images -a
我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 docker diff 命令看到具体的改动。
$ docker diff webserver
C /root
A /root/.bash_history
C /run
C /usr
C /usr/share
C /usr/share/nginx
C /usr/share/nginx/html
C /usr/share/nginx/html/index.html
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
A /var/cache/nginx/uwsgi_temp
sudo docker run --name xmaijenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Xmx8192m" --env JAVA_OPTS="-Djava.util.logging.config.file=/home/xmai/jenkins_home_docker/log.properties" --env JENKINS_SLAVE_AGENT_PORT=50000 -v /home/xmai/jenkins_home_docker:/var/jenkins_home jenkins/jenkins:lts
docker pull jenkins:latest
1.服务器拉取docker jenkins镜像:
docker pull jenkins:latest
2.拉取jenkins latest版本镜像
docker pull jenkins:2.7.4
拉取jenkins 2.7.4版本镜像
3.服务器运行dokcer jenkins容器:
sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest
命令的意思是:在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为49002端口,并且把服务器上的/var/jenkins_node目录挂在到docker容器上的/var/jenkins_home目录
-d 后台运行docker容器
如果不加-d则,容器运行会占用此终端,如果终端关闭,则容器也相应关闭,jenkins就无法访问了。加上-d,容器会在后台运行。
--name 为容器起个别名
如果不起别名,则系统会默认分配一个随机别名,类似gklasd_sdfwe。起了别名后,后续会通过该别名管理该docker容器,也就是管理jenkins。
-p docker容器端口映射
jenkins服务是运行在docker里的,docker默认不对外暴露端口的
-v 文件挂载
如果不挂载,则jenkins所有log、用户配置文件都会在docker容器内,如果容器销毁,则jenkins得重新配置一遍。挂载出来方便jenkins迁移以及管理
jenkins run
查看你服务器上的的/var/jenkins_node文件夹,当出现下图所有文件时,则说明jenkins启动成功,否则再等等...30秒左右即可
网友评论