您的位置:首页 > 运维架构 > Docker

62 docker01

2017-01-26 17:18 218 查看
01 docker基础原理

02 docker使用入门

#安装
[root@node1 ~]# yum -y install docker-engine-*
[root@node1 ~]# yum -y install docker*

#列出本地docker镜像
[root@node1 ~]# docker images

#搜索docker镜像
[root@node1 ~]# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 3029 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.3.1611 x8... 56 [OK]
docker.io docker.io/nimmis/java-centos This is docker images of CentOS 7 with dif... 23 [OK]
docker.io docker.io/consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 18 [OK]
docker.io docker.io/million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 12 [OK]
docker.io docker.io/nickistre/centos-lamp LAMP on centos setup 9 [OK]
docker.io docker.io/torusware/speedus-centos Always updated official CentOS docker imag... 8 [OK]
docker.io docker.io/egyptianbman/docker-centos-nginx-php A simple and highly configurable docker co... 6 [OK]
docker.io docker.io/nathonfowlie/centos-jre Latest CentOS image with the JRE pre-insta... 5 [OK]
docker.io docker.io/centos/mariadb55-centos7 4 [OK]
docker.io docker.io/consol/sakuli-centos-xfce Sakuli JavaScript based end-2-end testing ... 3 [OK]
docker.io docker.io/centos/tools Docker image that has systems administrati... 2 [OK]
docker.io docker.io/harisekhon/centos-java Java on CentOS (OpenJDK, tags jre/jdk7-8) 2 [OK]
docker.io docker.io/blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
docker.io docker.io/centos/redis Redis built for CentOS 1 [OK]
docker.io docker.io/darksheer/centos Base Centos Image -- Updated hourly 1 [OK]
docker.io docker.io/freenas/centos CentOS image enhanced with FreeNAS 10 meta... 1 [OK]
docker.io docker.io/harisekhon/centos-scala Scala + CentOS (OpenJDK tags 2.10-jre7 - 2... 1 [OK]
docker.io docker.io/timhughes/centos Centos with systemd installed and running 1 [OK]
docker.io docker.io/grayzone/centos auto build for centos. 0 [OK]
docker.io docker.io/januswel/centos yum update-ed CentOS image 0 [OK]
docker.io docker.io/kz8s/centos Official CentOS plus epel-release 0 [OK]
docker.io docker.io/repositoryjp/centos Docker Image for CentOS. 0 [OK]
docker.io docker.io/vcatechnology/centos A CentOS Image which is updated daily 0 [OK]
docker.io docker.io/wenjianzhou/centos centos 0 [OK]

[root@node1 ~]# docker search busybox
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/busybox Busybox base image. 911 [OK]
docker.io docker.io/progrium/busybox 65 [OK]
docker.io docker.io/radial/busyboxplus Full-chain, Internet enabled, busybox made... 11 [OK]
docker.io docker.io/container4armhf/armhf-busybox Automated build of Busybox for armhf devic... 4 [OK]
docker.io docker.io/odise/busybox-python 4 [OK]
docker.io docker.io/azukiapp/busybox This image is meant to be used as the base... 2 [OK]
docker.io docker.io/multiarch/busybox multiarch ports of ubuntu-debootstrap 2 [OK]
docker.io docker.io/elektritter/busybox-teamspeak Leightweight teamspeak3 container based on... 1 [OK]
docker.io docker.io/getblank/busybox Docker container busybox for Blank 1 [OK]
docker.io docker.io/odise/busybox-curl 1 [OK]
docker.io docker.io/ofayau/busybox-jvm Prepare busybox to install a 32 bits JVM. 1 [OK]
docker.io docker.io/ofayau/busybox-libc32 Busybox with 32 bits (and 64 bits) libs 1 [OK]
docker.io docker.io/skomma/busybox-data Docker image suitable for data volume cont... 1 [OK]
docker.io docker.io/socketplane/busybox 1 [OK]
docker.io docker.io/cucy/busybox aouto build busybox 0 [OK]
docker.io docker.io/ddn0/busybox fork of official busybox 0 [OK]
docker.io docker.io/dpcrook/data-busybox Data container for `/var/lib/mysql`, `/va... 0 [OK]
docker.io docker.io/futurenda/busybox Mini busybox 0 [OK]
docker.io docker.io/ggtools/busybox-ubuntu Busybox ubuntu version with extra goodies 0 [OK]
docker.io docker.io/hongtao12310/busybox for busybox image based on the gcr.io/goog... 0 [OK]
docker.io docker.io/jahroots/busybox Busybox containers 0 [OK]
docker.io docker.io/jiangshouzhuang/busybox busybox 0 [OK]
docker.io docker.io/oveits/docker-nginx-busybox This is a tiny NginX docker image based on... 0 [OK]
docker.io docker.io/prom/busybox Prometheus Busybox Docker base images 0 [OK]
docker.io docker.io/sdurrheimer/prom-busybox Moved to https://hub.docker.com/r/prom/bus... 0 [OK]

#下载docker镜像
[root@node1 ~]# docker pull busybox
Using default tag: latest
Trying to pull repository docker.io/library/busybox ...
latest: Pulling from docker.io/library/busybox
4b0bc1c4050b: Pull complete
Digest: sha256:817a12c32a39bbe394944ba49de563e085f1d3c5266eb8e9723256bc4448680e
Status: Downloaded newer image for docker.io/busybox:latest

[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 7968321274dc 7 days ago 1.11 MB

#运行docker镜像
[root@node1 ~]# docker run -it busybox:latest /bin/sh
/ # ls
bin dev etc home proc root run sys tmp usr var

#列出正在运行中的docker容器
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc151d747319 busybox:latest "/bin/sh" About a minute ago Up About a minute amazing_pike

[root@node1 ~]# docker pull centos

#显示docker环境信息
[root@node1 ~]# docker info

#显示docker版本
[root@node1 ~]# docker version
Client:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-59.el7.centos.x86_64
Go version: go1.6.3
Git commit: 3999ccb-unsupported
Built: Thu Dec 15 17:24:43 2016
OS/Arch: linux/amd64

Server:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-59.el7.centos.x86_64
Go version: go1.6.3
Git commit: 3999ccb-unsupported
Built: Thu Dec 15 17:24:43 2016
OS/Arch: linux/amd64

#查看Docker镜像
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 7968321274dc 8 days ago 1.11 MB
docker.io/centos latest 67591570dd29 5 weeks ago 191.8 MB

#运行docker镜像
[root@node1 ~]# docker run -it centos:latest /bin/bash
[root@67319a5a2333 /]# ls
anaconda-post.log dev home lib64 media opt root sbin sys usr
bin etc lib lost+found mnt proc run srv tmp var

#查看正在运行的docker容器
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 8 seconds ago Up 6 seconds focused_jones
67319a5a2333 centos:latest "/bin/bash" 2 minutes ago Up 2 minutes nauseous_hodgkin

#centos镜像操作
[root@67319a5a2333 /]# cd /etc/yum.repos.d/
[root@67319a5a2333 yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo CentOS-fasttrack.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
[root@67319a5a2333 yum.repos.d]# ifconfig
bash: ifconfig: command not found
[root@67319a5a2333 yum.repos.d]# ip addr list
bash: ip: command not found
[root@67319a5a2333 yum.repos.d]# yum install iproute

[root@node1 ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:f5ff:fe88:c02f prefixlen 64 scopeid 0x20<link>
ether 02:42:f5:88:c0:2f txqueuelen 0 (Ethernet)
RX packets 2451 bytes 138194 (134.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3344 bytes 10168092 (9.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.131 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe50:27c4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:50:27:c4 txqueuelen 1000 (Ethernet)
RX packets 418211 bytes 307762406 (293.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 213558 bytes 17636171 (16.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#删除正在运行的docker容器
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 10 minutes ago Up 10 minutes focused_jones
67319a5a2333 centos:latest "/bin/bash" 12 minutes ago Up 12 minutes nauseous_hodgkin
[root@node1 ~]# docker kill 67319a5a2333
67319a5a2333
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 10 minutes ago Up 10 minutes focused_jones

#显示所有的docker容器,包括已关掉的
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 11 minutes ago Up 11 minutes focused_jones
67319a5a2333 centos:latest "/bin/bash" 13 minutes ago Exited (137) 51 seconds ago nauseous_hodgkin
cc151d747319 busybox:latest "/bin/sh" 23 hours ago Exited (0) 21 hours ago amazing_pike

#移除docker容器
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 14 minutes ago Up 13 minutes focused_jones
67319a5a2333 centos:latest "/bin/bash" 16 minutes ago Exited (137) 3 minutes ago nauseous_hodgkin
cc151d747319 busybox:latest "/bin/sh" 23 hours ago Exited (0) 21 hours ago amazing_pike
[root@node1 ~]# docker rm cc151d747319
cc151d747319
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 14 minutes ago Up 14 minutes focused_jones
67319a5a2333 centos:latest "/bin/bash" 16 minutes ago Exited (137) 3 minutes ago nauseous_hodgkin

#基于正在运行的容器创建新容器
[root@node1 ~]# docker run -it centos:latest /bin/bash
[root@94862d601473 /]# cd home/
[root@94862d601473 home]# useradd centos
[root@94862d601473 home]# id centos
uid=1000(centos) gid=1000(centos) groups=1000(centos)
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94862d601473 centos:latest "/bin/bash" 3 minutes ago Up 3 minutes awesome_pare
0010752b4dc8 busybox:latest "/bin/sh" 21 minutes ago Up 21 minutes focused_jones
[root@node1 ~]# docker commit 94862d601473 centos:newuser
sha256:4b761c9a987a61d8d46414418839c6af74747fb6d56037fd39a8ac59449cea91
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos newuser 4b761c9a987a 30 seconds ago 192.1 MB
docker.io/busybox latest 7968321274dc 8 days ago 1.11 MB
docker.io/centos latest 67591570dd29 5 weeks ago 191.8 MB
[root@node1 ~]# docker kill 94862d601473
94862d601473
[root@node1 ~]# docker rm 94862d601473
94862d601473
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 44 minutes ago Up 44 minutes focused_jones
[root@node1 ~]# docker run -it --rm centos:latest /bin/bash
[root@9da547098810 /]# id centos
id: centos: no such user
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9da547098810 centos:latest "/bin/bash" About a minute ago Up About a minute romantic_gates
0010752b4dc8 busybox:latest "/bin/sh" 47 minutes ago Up 47 minutes focused_jones
[root@node1 ~]# docker kill 9da547098810
9da547098810
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0010752b4dc8 busybox:latest "/bin/sh" 48 minutes ago Up 48 minutes focused_jones
[root@node1 ~]# docker run -it --rm centos:newuser /bin/bash
[root@c3eb3d9732f1 /]# id centos
uid=1000(centos) gid=1000(centos) groups=1000(centos)

03 docker应用进阶

[root@node1 ~]# docker run busybox:latest /bin/echo "hello world"
hello world
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b48c5872eb8 busybox:latest "/bin/echo 'hello wor" About a minute ago Exited (0) About a minute ago goofy_jepsen
0010752b4dc8 busybox:latest "/bin/sh" About an hour ago Exited (137) 24 seconds ago focused_
[root@node1 ~]# docker start 8b48c5872eb8
8b48c5872eb8
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b48c5872eb8 busybox:latest "/bin/echo 'hello wor" 4 minutes ago Exited (0) 35 seconds ago goofy_jepsen
0010752b4dc8 busybox:latest "/bin/sh" About an hour ago Exited (137) 3 minutes ago focused_jones

[root@node1 ~]# docker run -it --name=busybox busybox:latest /bin/sh
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f1c0c44b7ad4 busybox:latest "/bin/sh" 36 seconds ago Up 35 seconds busybox
[root@node1 ~]# docker stop busybox
busybox
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f1c0c44b7ad4 busybox:latest "/bin/sh" About a minute ago Exited (137) 27 seconds ago busybox
[root@node1 ~]# docker start busybox
busybox
[root@node1 ~]# docker attach busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:648 (648.0 B) TX bytes:648 (648.0 B)

[root@node1 ~]# docker run busybox:latest /bin/echo "hello world"
hello world
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7339054ab26a busybox:latest "/bin/echo 'hello wor" 25 seconds ago Exited (0) 23 seconds ago fervent_carson
f1c0c44b7ad4 busybox:latest "/bin/sh" 13 minutes ago Up 6 minutes busybox
[root@node1 ~]# docker start 7339054ab26a
7339054ab26a
[root@node1 ~]# docker logs 7339054ab26a
hello world
hello world

[root@node1 ~]# docker start -i busybox

04 docker应用进阶

#使用docker hub
[root@node1 ~]# docker login
Username (fkuefcpso):
Password:
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded

#创建私有仓库
[root@node2 ~]# cd /etc/yum.repos.d/
[root@node2 yum.repos.d]# vim CentOS-Base.repo
在[updates]和[extras]下分别添加
enabled=1
[root@node2 yum.repos.d]# yum clean all
[root@node2 yum.repos.d]# yum repolist
[root@node2 yum.repos.d]# yum -y install docker-registry
[root@node2 ~]# vim /etc/docker-registry.yml
[root@node2 ~]# vim /etc/sysconfig/docker-registry
[root@node2 ~]# systemctl start docker-registry.service

[root@node1 ~]# docker logout
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos newuser 4b761c9a987a 24 hours ago 192.1 MB
docker.io/busybox latest 7968321274dc 9 days ago 1.11 MB
docker.io/centos latest 67591570dd29 5 weeks ago 191.8 MB
[root@node1 ~]# docker tag 7968321274dc 192.168.1.132:5000/busybox:1.2.1
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos newuser 4b761c9a987a 24 hours ago 192.1 MB
192.168.1.132:5000/busybox 1.2.1 7968321274dc 9 days ago 1.11 MB
docker.io/busybox latest 7968321274dc 9 days ago 1.11 MB
docker.io/centos latest 67591570dd29 5 weeks ago 191.8 MB
[root@node1 ~]# docker push 192.168.1.132:5000/busybox:1.2.1
The push refers to a repository [192.168.1.132:5000/busybox]
unable to ping registry endpoint https://192.168.1.132:5000/v0/ v2 ping attempt failed with error: Get https://192.168.1.132:5000/v2/: EOF
v1 ping attempt failed with error: Get https://192.168.1.132:5000/v1/_ping: EOF

[root@node1 ~]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# vim CentOS-Base.repo
在[updates]和[extras]下分别添加
enabled=1
[root@node1 yum.repos.d]# vim /etc/sysconfig/docker
修改
#ADD_REGISTRY='--add-registry registry.access.redhat.com'

ADD_REGISTRY='--add-registry 192.168.1.132:5000'
修改
# INSECURE_REGISTRY='--insecure-registry'

INSECURE_REGISTRY='--insecure-registry 192.168.1.132:5000'
[root@node1 yum.repos.d]# systemctl restart docker.service
[root@node1 yum.repos.d]# docker push 192.168.1.132:5000/busybox:1.2.1
The push refers to a repository [192.168.1.132:5000/busybox]
38ac8d0f5bb3: Image successfully pushed
Pushing tag for rev [7968321274dc] on {http://192.168.1.132:5000/v1/repositories/busybox/tags/1.2.1}
[root@node1 yum.repos.d]# scp /etc/yum.repos.d/CentOS-Base.repo 192.168.1.133:/etc/yum.repos.d/

[root@node3 ~]# yum -y install docker
[root@node3 ~]# vim /etc/sysconfig/docker
修改
##ADD_REGISTRY='--add-registry registry.access.redhat.com'

ADD_REGISTRY='--add-registry 192.168.1.132:5000'
修改
# INSECURE_REGISTRY='--insecure-registry'

INSECURE_REGISTRY='--insecure-registry 192.168.1.132:5000'
[root@node3 ~]# systemctl start docker.service
[root@node3 ~]# docker pull 192.168.1.132:5000/busybox:1.2.1
[root@node3 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.132:5000/busybox 1.2.1 6f6e7813d8a1 9 days ago 1.11 MB

#Docker的数据卷
[root@node1 ~]# docker run -it --name busybox2 -v /data busybox:latest
/ # ls
bin data dev etc home proc root run sys tmp usr var
/ # cd /data/
/data # ls
/data # cp /etc/hosts .
/data # ls
hosts
[root@node1 ~]# ls /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/
_data
[root@node1 ~]# ls /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/
hosts
/data # vi hosts
添加
new line
[root@node1 ~]# cat /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 4504beabeeae
new line
#宿主机的文件同步被修改

[root@node1 ~]# docker rm busybox2
busybox2

cat [root@node1 ~]# /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 4504beabeeae
new line
#容器被删除后数据卷的文件还存在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker