centos7 docker

1. 介绍

         百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类


2. docker安装配置

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。

查看源中包含的docker安装包

[root@yzb-centos72-3 ~]# yum list available | grep docker
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
cockpit-docker.x86_64                     131-3.el7.centos               extras
docker.x86_64                             2:1.12.6-11.el7.centos         extras
docker-client.x86_64                      2:1.12.6-11.el7.centos         extras
docker-client-latest.x86_64               1.12.6-11.el7.centos           extras
docker-common.x86_64                      2:1.12.6-11.el7.centos         extras
docker-devel.x86_64                       1.3.2-4.el7.centos             extras
docker-distribution.x86_64                2.6.0-1.el7                    extras
docker-forward-journald.x86_64            1.10.3-44.el7.centos           extras
docker-latest.x86_64                      1.12.6-11.el7.centos           extras
docker-latest-logrotate.x86_64            1.12.6-11.el7.centos           extras
docker-latest-v1.10-migrator.x86_64       1.12.6-11.el7.centos           extras
docker-logrotate.x86_64                   2:1.12.6-11.el7.centos         extras
docker-lvm-plugin.x86_64                  2:1.12.6-11.el7.centos         extras
docker-novolume-plugin.x86_64             2:1.12.6-11.el7.centos         extras
docker-python.x86_64                      1.4.0-115.el7                  extras
docker-registry.noarch                    0.6.8-8.el7                    extras
docker-registry.x86_64                    0.9.1-7.el7                    extras
docker-unit-test.x86_64                   2:1.12.6-11.el7.centos         extras
docker-v1.10-migrator.x86_64              2:1.12.6-11.el7.centos         extras
python-docker-py.noarch                   1.10.6-1.el7                   extras
python-docker-pycreds.noarch              1.10.6-1.el7                   extras

docker的详细信息

[root@yzb-centos72-3 ~]# yum info docker
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Available Packages
Name        : docker
Arch        : x86_64
Epoch       : 2
Version     : 1.12.6
Release     : 11.el7.centos
Size        : 20 M
Repo        : extras/7/x86_64
Summary     : Automates deployment of containerized applications
URL         : https://github.com/docker/docker
License     : ASL 2.0
Description : Docker is an open-source engine that automates the deployment of any
            : application as a lightweight, portable, self-sufficient container that will
            : run virtually anywhere.
            :
            : Docker containers can encapsulate any payload, and will run consistently on
            : and between virtually any server. The same container that a developer builds
            : and tests on a laptop will run at scale, in production*, on VMs, bare-metal
            : servers, OpenStack clusters, public instances, or combinations of the above.

[root@yzb-centos72-3 ~]

因此想要安装 docker,只需要运行下面的 yum 命令:

安装

[root@yzb-centos72-3 ~]# yum install dock

启动

[root@yzb-centos72-3 ~]#  systemctl start docker.service
Redirecting to /bin/systemctl start  docker.service

开机自启动

[root@yzb-centos72-3 ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

下载镜像centos

[root@yzb-centos72-3 ~]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
93857f76ae30: Pull complete
Digest: sha256:4eda692c08e0a065ae91d74e82fff4af3da307b4341ad61fa61771cc4659af60

查看镜像centos

[root@yzb-centos72-3 ~]# docker images centos
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              a8493f5f50ff        4 weeks ago         192.5 MB

启动镜像centos

[root@yzb-centos72-3 ~]#  docker run -i -t centos /bin/bash

可以看到主机名变成了一个串bcb334eb3379。

[root@bcb334eb3379 /]#

进入根目录,查看目录结构

[root@bcb334eb3379 local]# cd /
[root@bcb334eb3379 /]# ll
total 24
-rw-r--r--   1 root root 15747 Apr  6 14:54 anaconda-post.log
lrwxrwxrwx   1 root root     7 Apr  6 14:52 bin -> usr/bin
drwxr-xr-x   5 root root   380 May  8 01:49 dev
drwxr-xr-x  47 root root  4096 May  8 01:49 etc
drwxr-xr-x   2 root root     6 Nov  5  2016 home
lrwxrwxrwx   1 root root     7 Apr  6 14:52 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Apr  6 14:52 lib64 -> usr/lib64
drwx------   2 root root     6 Apr  6 14:52 lost+found
drwxr-xr-x   2 root root     6 Nov  5  2016 media
drwxr-xr-x   2 root root     6 Nov  5  2016 mnt
drwxr-xr-x   2 root root     6 Nov  5  2016 opt
dr-xr-xr-x 140 root root     0 May  8 01:49 proc
dr-xr-x---   2 root root   130 Apr  6 14:54 root
drwxr-xr-x  11 root root   135 May  8 01:49 run
lrwxrwxrwx   1 root root     8 Apr  6 14:52 sbin -> usr/sbin
drwxr-xr-x   2 root root     6 Nov  5  2016 srv
dr-xr-xr-x  13 root root     0 May  8 01:49 sys
drwxrwxrwt   7 root root   125 Apr  6 14:54 tmp
drwxr-xr-x  13 root root   143 Apr  6 14:52 usr
drwxr-xr-x  18 root root  4096 Apr  6 14:54 var
[root@bcb334eb3379 /]#    

退出
[root@bcb334eb3379 /]# exit
exit

返回到宿主系统,查看根目录结构,两者是不一样的。

[root@yzb-centos72-3 ~]# cd /
[root@yzb-centos72-3 /]# ll
total 64
lrwxrwxrwx.   1 root root     7 Jan  2 22:59 bin -> usr/bin
dr-xr-xr-x.   4 root root  4096 Jan  9 19:21 boot
drwxr-xr-x    4 root root  4096 May  4 13:04 data
drwxr-xr-x   20 root root  3120 May  8 09:51 dev
drwxr-xr-x.  81 root root  4096 May  8 09:39 etc
drwxr-xr-x.   3 root root  4096 May  4 13:31 home
lrwxrwxrwx.   1 root root     7 Jan  2 22:59 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Jan  2 22:59 lib64 -> usr/lib64
drwx------.   2 root root 16384 Jan  2 22:58 lost+found
drwxr-xr-x.   2 root root  4096 Aug 12  2015 media
drwxr-xr-x.   2 root root  4096 Aug 12  2015 mnt
drwxr-xr-x.   2 root root  4096 Aug 12  2015 opt
dr-xr-xr-x  133 root root     0 Apr  1 13:02 proc
dr-xr-x---.   5 root root  4096 May  5 14:15 root
drwxr-xr-x   24 root root   780 May  8 09:49 run
lrwxrwxrwx.   1 root root     8 Jan  2 22:59 sbin -> usr/sbin
drwxr-xr-x.   2 root root  4096 Aug 12  2015 srv
dr-xr-xr-x   13 root root     0 Apr  1 13:02 sys
drwxrwxrwt.  15 root root  4096 May  8 09:49 tmp
drwxr-xr-x.  13 root root  4096 Jan  2 22:59 usr
drwxr-xr-x.  19 root root  4096 Apr  1 13:02 var

查看已有的images

[root@yzb-centos72-3 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
stone-docker        latest              7a7087f67b98        5 minutes ago       202.4 MB
docker.io/centos    latest              a8493f5f50ff        4 weeks ago         192.5 MB

启动

[root@yzb-centos72-3 ~]# docker run -i -t centos /bin/bash

退出

[root@86bd3bcfc689 /]#exit

用刚才的86bd3bcfc689 生成一个image

[root@yzb-centos72-3 ~]# docker commit 86bd3bcfc689  test-docker
sha256:9db8306d0248b0b33489b8995d27290482a2621847e1f164f732ef7282fdaaf6

查看生成的images

[root@yzb-centos72-3 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
test-docker         latest              9db8306d0248        About a minute ago   192.5 MB
stone-docker        latest              7a7087f67b98        11 minutes ago       202.4 MB
docker.io/centos    latest              a8493f5f50ff        4 weeks ago          192.5 MB

启动、挂载、配置

[root@yzb-centos72-3 ~]# docker run  -i -t -v /data/software/:/mnt/data test-docker /bin/bash

docker run <相关参数> <镜像 ID> <初始命令>

其中,相关参数包括:

  • -i:表示以“交互模式”运行容器

  • -t:表示容器启动后会进入其命令行

  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

[root@f2a9fff624a7 /]# cd /mnt/data/
[root@f2a9fff624a7 data]# ll
total 246172
-rwxr-xr-x 1 root root   9949259 May  4 05:04 apache-tomcat-8.5.13.zip
-rw-r--r-- 1 root root  43817141 May  4 05:04 dfs-test.war
drwxr-xr-x 2 root root      4096 May  4 05:13 elk
drwxr-xr-x 4 root root      4096 May  4 05:04 img-cloud
-rwxr-xr-x 1 root root 183246769 May  4 05:04 jdk-8u121-linux-x64.tar.gz
drwxr-xr-x 2 root root      4096 May  4 05:04 logs
-rw-r--r-- 1 root root  14777845 May  4 05:04 robomongo-1.0.0-windows-x86_64-89f24ea.zip

做一些拷贝

[root@f2a9fff624a7 data]# cp apache-tomcat-8.5.13.zip  /home
[root@f2a9fff624a7 data]# cd /home
[root@Ahome]# ll
total 9720
-rwxr-xr-x 1 root root 9949259 May  8 03:31 apache-tomcat-8.5.13.zip
[root@f2a9fff624a7 home]#

提交变更

[root@yzb-centos72-3 ~]# docker commit f2a9fff624a7 test-docker
sha256:d8f4b83cdc53f060ac173c103ffbe0f98cadd7b0f2c776a328899095de3f0efc

再次启动,看看是否保存了上次拷贝的tomcat

[root@yzb-centos72-3 home]# docker run -i -t test-docker

[root@21afb3060c88 /]# cd /home
[root@21afb3060c88 home]# ll
total 9720
-rwxr-xr-x 1 root root 9949259 May  8 05:15 apache-tomcat-8.5.13.zip


docker 常用命令

删除所有容器

docker rm $(docker ps -a -q)

删除所有镜像

docker rmi $(docker images -a -q)

进入正在运行的容器

docker exec -it name /bin/bash

登录阿里云docker

docker login --username=hi31401912@aliyun.com registry.cn-beijing.aliyuncs.com
从阿里云docker的仓库中拉取镜像

docker pull registry.cn-beijing.aliyuncs.com/zybros/yonyou:[镜像版本号]
用tag 为镜像重新命名

docker tag 37bb9c63c8b2 registry.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
推送镜像到阿里云,(推送之前需要tag重命名镜像为符合阿里标准)

 docker push registry.cn-beijing.aliyuncs.com/zybros/yonyou:[镜像版本号]

一般更标准的方式是使用dockerfile生成镜像,因为dockerfile有更多的优点

比如:

镜像环境一看dockerfile就很清晰

镜像环境维护也简单,通过改dockerfile,重新生成一份镜像即可

等等


后面会写一篇专门用dockerfile构建影像的内容



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值