docker是一个开源的应用容器引擎,使用go语言开发,基于linux内核的cgroup、namespace、union fs等技术实现的一种系统级虚拟化技术。
安装需求:
由于docker是建立在linux中两种核心技术之上:namespace与cgroup,而user namespace出现的版本是3.8,所以安装docker需要内核版本大于3.10,centos6内核版本是2.6所以无法在其上使用docker。
namespace | 系统调用参数 | 隔离内容 | 内核版本 |
uts | clone_newuts | 主机名和域名 | 2.6.19 |
ipc | clone_newipc | 信号量、消息队列和共享内存 | 2.6.19 |
pid | clone_newpid | 进程编号 | 2.6.24 |
network | clone_newnet | 网络设备、网络栈、端口等 | 2.6.29 |
mount | clone_newns | 挂载点(文件系统) | 2.4.19 |
user | clone_newuser | 用户和用户组 | 3.8 |
1. 安装依赖
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2.添加仓库
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. 查看docker版本列表
yum list docker-ce --showduplicates | sort -r
4. 安装指定版本的docker(可忽略,直接安装最新版)
yum install docker-ce-<version_string> docker-ce-cli-<version_string> containerd.io
5.安装最新版docker
yum install docker-ce docker-ce-cli containerd.io
1. 更新包管理
sudo apt-get update
2. 添加https包信任
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common
3. 添加docker官方gpg 证书
curl -fssl https://download.docker.com/linux/debian/gpg | sudo apt-key add -
4. 写入软件信息
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable”
4. 更新并安装docker
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
5.若安装指定版本采用如下方式
#列出版本 $ apt-cache madison docker-ce docker-ce | 5:18.09.1~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 packages docker-ce | 5:18.09.0~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 packages docker-ce | 18.06.1~ce~3-0~debian | https://download.docker.com/linux/debian stretch/stable amd64 packages docker-ce | 18.06.0~ce~3-0~debian | https://download.docker.com/linux/debian stretch/stable amd64 packages #安装 sudo apt-get install docker-ce=<version_string> docker-ce-cli=<version_string> containerd.io
停止防火墙、关闭selinux
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
配置镜像加速
mkdir /etc/docker cat > /etc/docker/daemon.json <<eof { "registry-mirrors": ["https://registry.docker-cn.com"] } eof
运行docker
#重新装载systemd服务 systemctl daemon-reload #启动docker systemctl start docker #开机自动docker #systemctl enable docker #查看docker版本 [root@app51 ~]# docker version client: version: 18.09.2 api version: 1.39 go version: go1.10.6 git commit: 6247962 built: sun feb 10 04:13:27 2019 os/arch: linux/amd64 experimental: false server: docker engine - community engine: version: 18.09.2 api version: 1.39 (minimum version 1.12) go version: go1.10.6 git commit: 6247962 built: sun feb 10 03:47:25 2019 os/arch: linux/amd64
其中docker container 则是管理容器命令,老的版本中是使用docker进行容器管理,新版本兼容老版本docker命令,所以对容器管理既可用docker也可以用docker container。
[root@app51 ~]# docker run -it --name nginx-container -p 8080:80 nginx /bin/bash root@fd92290433da:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
docker ps [options]
root@app51 ~]# docker ps -n 2 container id image command created status ports names 4d51a1cdf4b4 busybox "/bin/sh" 11 seconds ago up 9 seconds busybox 383f31ff8f01 nginx "nginx -g 'daemon of…" 3 minutes ago up 3 minutes 0.0.0.0:8080->80/tcp nginx-container [root@app51 ~]# docker ps -l container id image command created status ports names 4d51a1cdf4b4 busybox "/bin/sh" 41 seconds ago up 39 seconds busybox [root@app51 ~]#
docker inspect [options] name|id [name|id…]
示例:
[root@app51 ~]# docker inspect busybox [ { "id": "4d51a1cdf4b4e06831faa6e54a32f1f8eb544e349028083b12f5b3f87af075c9", "created": "2019-02-23t09:10:20.907074902z", "path": "/bin/sh", "args": [],
4.停止容器
[root@app51 ~]# docker stop nginx-container nginx-container
docker start [options] container [container…]
[root@app51 ~]# docker start -ia busybox / # ls bin dev etc home proc root sys tmp usr var / # ps pid user time command 1 root 0:00 /bin/sh 7 root 0:00 ps
docker rm nginx-container
ps:删除所有容器
docker rm -f `docker ps -a -q` docker ps -a |awk -f ' ' '{print $1}' |xargs docker rm -f
docker pause container [container…]
示例:
[root@app51 ~]# docker pause nginx-container nginx-container
docker unpause container [container…]
[root@app51 ~]# docker pause nginx-container nginx-container
docker logs [options] container
常用选项:
root@app51 ~]# docker logs nginx-container 10.1.201.30 - - [23/feb/2019:10:55:33 +0000] "get / http/1.1" 304 0 "-" "mozilla/5.0 (macintosh; intel mac os x 10_12_6) applewebkit/537.36 (khtml, like gecko) chrome/72.0.3626.109 safari/537.36" "-"
示例:
[root@app51 ~]# docker exec -it -u nginx nginx-container /bin/sh $ id uid=101(nginx) gid=101(nginx) groups=101(nginx) $
[root@app51 ~]# docker export nginx-container -o nginx.tar [root@app51 ~]# ls -lh ningx.tar -rw------- 1 root root 107m 2月 23 19:18 ningx.tar
[root@app51 ~]# docker import nginx.tar nginx:v154 sha256:fd4931710d35765edb9bbd0ea84a886e0901aa7a2de03ab2eefd9aedea0e8646 [root@app51 ~]# docker images repository tag image id created size nginx v154 fd4931710d35 10 seconds ago 108mb <none> <none> 940cdf68f69d 7 minutes ago 108mb busybox latest d8233ab899d4 8 days ago 1.2mb nginx latest f09fe80eb0e7 2 weeks ago 109mb
其他导入示例
docker import http://example.com/image.tar.gz repository:tag
[root@app51 ~]# docker commit -p -m 'build nginx image' nginx-container nginx:test sha256:6c68885804ca69970d747cc6cc8050ed7a1b6c24838695ec11b18348318809a6 [root@app51 ~]# docker images repository tag image id created size nginx test 6c68885804ca 6 seconds ago 109mb nginx v154 fd4931710d35 2 hours ago 108mb
在老版本中镜像操作也是使用的docker命令,新版本进行了分组,可使用docker image 来进行镜像操作。
docker search [options] term
[root@app51 ~]# docker search centos name description stars official automated centos the official build of centos. 5179 [ok] ansible/centos7-ansible ansible on centos7 120 [ok] jdeathe/centos-ssh centos-6 6.10 x86_64 / centos-7 7.5.1804 x86… 106 [ok] consol/centos-xfce-vnc centos container with "headless" vnc session… 80 [ok]
tag不写默认为最新版本latest
[root@app51 ~]# docker pull centos using default tag: latest latest: pulling from library/centos a02a4930cb5d: pull complete digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426 status: downloaded newer image for centos:latest
[root@app51 ~]# docker image ls -a repository tag image id created size centos latest 1e1148e4cc2c 2 months ago 202mb
docker image rm [options] image [image...] 或者docker rmi image
[root@app51 ~]# docker image rm centos untagged: centos:latest untagged: centos@sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426 deleted: sha256:1e1148e4cc2c148c6890a18e3b2d2dde41a6745ceb4e5fe94a923d811bf82ddb deleted: sha256:071d8bd765171080d01682844524be57ac9883e53079b6ac66707e192ea25956
docker save [options] image [image...]
[root@app51 ~]# docker save -o nginx-bus.tar.gz busybox:latest nginx:latest
常用选项:
[root@app51 ~]# docker load -i nginx-bus.tar.gz loaded image: nginx:latest loaded image: busybox:latest
docker image inspect [options] image [image...]
[root@app51 ~]# docker image inspect nginx [ { "id": "sha256:f09fe80eb0e75e97b04b9dfb065ac3fda37a8fac0161f42fca1e6fe4d0977c80", "repotags": [ "nginx:latest" ], "repodigests": [ "nginx@sha256:dd2d0ac3fff2f007d99e033b64854be0941e19a2ad51f174d9240dda20d9f534" ],
运行信息查看docker info
[root@app51 ~]# docker info containers: 1 running: 1 paused: 0 stopped: 0 images: 4 server version: 18.09.2 storage driver: overlay2 backing filesystem: xfs supports d_type: true native overlay diff: true
版本信息查看 docker version
root@app51 ~]# docker version client: version: 18.09.2 api version: 1.39 go version: go1.10.6 git commit: 6247962 built: sun feb 10 04:13:27 2019 os/arch: linux/amd64 experimental: false
如对本文有疑问, 点击进行留言回复!!
linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
网友评论