设为首页 收藏本站
查看: 829|回复: 0

[经验分享] Centos7.3 Docker安装部署学习记录1

[复制链接]

尚未签到

发表于 2018-4-22 11:10:14 | 显示全部楼层 |阅读模式
一、Docker基础环境的安装
1. 环境说明
  本机采用操作系统如下: CentOS-7.3-X86-64,内核3.10 x64位,docker 1.12.x版本。   
建议采用CentOS7版本或ubuntu版本,本文采用CentOS7即CentOS-7-x86_64-DVD-1611.iso版本最小化安装。   
Docker可以在虚拟机环境中运行进行使用测试。本文出自:http://koumm.blog.51cto.com/
2. 主机网络
  1)关闭firewalld防火墙和SELinux   
setenforce 0   
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
  systemctl disable firewalld   
systemctl stop firewalld
  docker是必须要防火墙功能模块的,个人目前用iptables
  systemctl disable iptables.service   
systemctl stop iptables.service
  注意最小化需要补充安装的软件包:   
yum install vim net-tools iptables-config
  
2)配置hosts文件(主机名称)   
echo "192.168.1.90 docker1" >> /etc/hosts
3. 安装Docker软件包
  1)可以直接安装包yum源   
# yum install -y docker
  2)配置docker开机自启动以及启动服务   
# systemctl start docker.service   
# systemctl enable docker.service
  3)查看docker服务器,表示docker已安装成功
  查看版本:docker version   
帮助信息:docker --help   
概要信息:docker info   
镜像查看:docker images   
进程查看:docker ps -a   
搜索镜像:docker search centos   #搜索可用docker镜像
  示例: 表示docker已安装成功。
[root@docker1 ~]# docker info   
Containers: 4   
Running: 0   
Paused: 0   
Stopped: 4   
Images: 3   
Server Version: 1.12.6   
Storage Driver: devicemapper   
Pool Name: docker-253:0-16798063-pool   
Pool Blocksize: 65.54 kB   
Base Device Size: 10.74 GB   
Backing Filesystem: xfs   
Data file: /dev/loop0   
Metadata file: /dev/loop1   
Data Space Used: 849.3 MB   
Data Space Total: 107.4 GB   
Data Space Available: 15.27 GB   
Metadata Space Used: 1.937 MB   
Metadata Space Total: 2.147 GB   
Metadata Space Available: 2.146 GB   
Thin Pool Minimum Free Space: 10.74 GB   
Udev Sync Supported: true   
Deferred Removal Enabled: false   
Deferred Deletion Enabled: false   
Deferred Deleted Device Count: 0   
Data loop file: /var/lib/docker/devicemapper/devicemapper/data   
WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.   
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata   
Library Version: 1.02.135-RHEL7 (2016-09-28)   
Logging Driver: journald   
Cgroup Driver: systemd   
Plugins:   
Volume: local   
Network: bridge host null overlay   
Swarm: inactive   
Runtimes: docker-runc runc   
Default Runtime: docker-runc   
Security Options: seccomp   
Kernel Version: 3.10.0-514.el7.x86_64   
Operating System: CentOS Linux 7 (Core)   
OSType: linux   
Architecture: x86_64   
Number of Docker Hooks: 2   
CPUs: 2   
Total Memory: 984.8 MiB   
Name: docker1   
ID: YZZ7:NRHH:WJM7:PYUR:DGRH:4MLD:4GT4:UR2I:5PUZ:EAGS:P4Z2:JSL4   
Docker Root Dir: /var/lib/docker   
Debug Mode (client): false   
Debug Mode (server): false   
Registry: https://index.docker.io/v1/   
Insecure Registries:   
127.0.0.0/8   
Registries: docker.io (secure)  

二、Docker使用基础
1. 下载docker基础镜像
  1)搜索centos基础镜像
[root@docker1 ~]# docker  search centos
INDEX       NAME                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED   
docker.io   docker.io/centos                                 The official build of CentOS.                   3362      [OK]      
docker.io   docker.io/jdeathe/centos-ssh                     CentOS-6 6.9 x86_64 / CentOS-7 7.3.1611 x8...   69                   [OK]   
docker.io   docker.io/nimmis/java-centos                     This is docker images of CentOS 7 with dif...   26                   [OK]   
docker.io   docker.io/gluster/gluster-centos                 Official GlusterFS Image [ CentOS-7 +  Glu...   19                   [OK]   
docker.io   docker.io/million12/centos-supervisor            Base CentOS-7 with supervisord launcher, h...   16                   [OK]   
docker.io   docker.io/kinogmt/centos-ssh                     CentOS with SSH                                 13                   [OK]   
docker.io   docker.io/egyptianbman/docker-centos-nginx-php   A simple and highly configurable docker co...   9                    [OK]   
docker.io   docker.io/torusware/speedus-centos               Always updated official CentOS docker imag...   8                    [OK]   
docker.io   docker.io/centos/mariadb55-centos7                                                               5                    [OK]   
docker.io   docker.io/nathonfowlie/centos-jre                Latest CentOS image with the JRE pre-insta...   5                    [OK]   
docker.io   docker.io/darksheer/centos                       Base Centos Image -- Updated hourly             3                    [OK]   
docker.io   docker.io/harisekhon/centos-java                 Java on CentOS (OpenJDK, tags jre/jdk7-8)       2                    [OK]   
docker.io   docker.io/harisekhon/centos-scala                Scala + CentOS (OpenJDK tags 2.10-jre7 - 2...   2                    [OK]   
docker.io   docker.io/blacklabelops/centos                   CentOS Base Image! Built and Updates Daily!     1                    [OK]   
docker.io   docker.io/freenas/centos                         Simple CentOS Linux interactive container       1                    [OK]   
docker.io   docker.io/sgfinans/docker-centos                 CentOS with a running sshd and Docker           1                    [OK]   
docker.io   docker.io/timhughes/centos                       Centos with systemd installed and running       1                    [OK]   
docker.io   docker.io/vorakl/centos                          CentOS7, EPEL, tools. Updated/Tested daily!     1                    [OK]   
docker.io   docker.io/grossws/centos                         CentOS 6 and 7 base images with gosu and l...   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/labengine/centos                       Centos image base                               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@docker1 ~]#  
2)下载centos基础镜像
  本文采用官方默认镜像仓库下载。
[root@docker1 ~]# docker pull centos

  Using default tag: latest   
Trying to pull repository docker.io/library/centos ...     
latest: Pulling from docker.io/library/centos   
343b09361036: Pull complete     
Digest: sha256:bba1de7c9d900a898e3cadbae040dfe8a633c06bc104a0df76ae24483e03c077
  下载其它示例:下载支持ssh服务器的centos镜像
[root@docker1 ~]# docker pull jdeathe/centos-ssh   
Using default tag: latest   
Trying to pull repository docker.io/jdeathe/centos-ssh ...     
latest: Pulling from docker.io/jdeathe/centos-ssh   
45a2e645736c: Pull complete     
f0d571ff94cf: Pull complete     
ea228e12ac20: Pull complete     
edd63eef0a83: Pull complete     
27c3eb39991d: Pull complete     
4bf26ef9f3dd: Pull complete     
4e572750aff7: Pull complete     
b94a26882ae9: Pull complete     
91ee52de11b1: Pull complete     
e89f8a480c42: Pull complete     
bd26710715b3: Pull complete     
75c421c47829: Pull complete     
f6eabaf37913: Pull complete     
Digest: sha256:c80d3b79c853ce41a993cfa76f1b5983dffeb08aceefaaf04d64c9dc2e177d8e  

2. 通过导出、导入的方式部署基础镜像
  #官方镜像的下载很慢,有时多次尝试才能下载。
  方法一:
  #一台已经下载的好的镜像的服务器上操作。
  docker save centos > /opt/centos.tar        #Docker导出镜像   
docker load < /opt/centos.tar               #Docker导入镜像
  方法二:
  docker export id   > /opt/centos.tar        #Docker导出镜像   
cat /opt/centos.tar | docker import centos  #Docker导入镜像
  
*注1:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。   
*注2:容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。   
此外,从容器快照文件导入时可以重新指定标签等元数据信息。
  

3. 查看下载的基础镜像
[root@docker1 ~]# docker images   
-----------------------------------------------------------------------------------------------------   
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE   
docker.io/jdeathe/centos-ssh   latest              1d551d635e99        4 days ago          214 MB   
docker.io/centos               latest              8140d0c64310        2 weeks ago         192.5 MB  说明 :   
REPOSITORY:来自于哪个仓库,比如 centos   
TAG       : 镜像的标记,一般修改版本号,latest为最后版本   
IMAGE ID  : 镜像的id号   
CREATED   : 创建镜像的时间   
SIZE      : 镜像的大小
4. 通过基础镜像创建一个容器
  1)通过基础镜像centos创建一个容器名为centos_v1,并在后台执行
[root@docker1 ~]# docker run -it -d --name centos_v1 centos /bin/bash   
0c1841e5d1115d35b80177ed5ea4fc5782e8a3ffc5f5c801979fb90ac5f26423

  常用参数说明:  
-i: 开启交互式shell     
-t: 为容器分配一个伪tty终端     
centos: 指定镜像的名字     
/bin/bash: 运行/bin/bash
  
2) 查看容器
[root@docker1 ~]# docker ps -a   
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES   
0c1841e5d111        centos              "/bin/bash"         7 seconds ago       Up 4 seconds                            centos_v1

  查看docker镜像的状态,-a表示列出所有的容器,STATUS如果为Exited为退出,UP为运行。
  
3)进入容器
[root@docker1 ~]# docker exec -it centos_v1 /bin/bash

  提示符变成了0c1841e5d111,也是该容器的ID, 也是该容器的主机名。
[root@0c1841e5d111 /]# ls   
anaconda-post.log  bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[root@0c1841e5d111 /]# hostname   
0c1841e5d111

  
4)退出容器
[root@0c1841e5d111 /]# exit   
exit   
[root@docker1 ~]#

  

5. 查看容器状态
[root@docker1 ~]# docker ps -a   
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES   
0c1841e5d111        centos              "/bin/bash"         About an hour ago   Up About an hour                        centos_v1

  

6. 关闭与启动容器
  关闭容器
[root@docker1 ~]# docker stop centos_v1   
centos_v1

[root@docker1 ~]# docker ps -a         
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES   
0c1841e5d111        centos              "/bin/bash"         About an hour ago   Exited (137) 3 seconds ago                       centos_v1

  说明:STATUS状态为EXIT表示容器是退出状态。
  
启动容器
[root@docker1 ~]# docker start centos_v1   
centos_v1

[root@docker1 ~]# docker ps -a         
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES   
0c1841e5d111        centos              "/bin/bash"         About an hour ago   Up 3 seconds                            centos_v1   
[root@docker1 ~]#     
[root@docker1 ~]#

  

7. 删除容器
  1)删除容器(通过镜像ID与镜像名称均可)
[root@docker1 ~]# docker rm centos_v1  或  docker rm 0c1841e5d111

  2)对于正在运行的容器,可以加-f参数强制进行删除。
[root@docker1 ~]# docker rm -f centos_v1

  

8. 通过一个容器创建镜像
  说明:只能对运行中的容器提交本地镜像,关闭状态的容器无法提交本地镜像。
  1)通过容器提交镜像
[root@docker1 ~]# docker commit centos_v1 centos:v1   
sha256:66d2dc12144a87def3c16080553cca41d2a2965d9332f2a085dc23cc30366afa

[root@docker1 ~]# docker images   
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE   
centos                         v1                  66d2dc12144a        6 seconds ago       192.5 MB   
docker.io/jdeathe/centos-ssh   latest              1d551d635e99        4 days ago          214 MB   
docker.io/centos               latest              8140d0c64310        2 weeks ago         192.5 MB

  
2)删除镜像(通过镜像ID与镜像名称均可)
[root@docker1 ~]# docker rmi centos:v1

  或
[root@docker1 ~]# docker rmi 66d2dc12144a

  Untagged: centos:v1   
Deleted: sha256:66d2dc12144a87def3c16080553cca41d2a2965d9332f2a085dc23cc30366afa   
Deleted: sha256:9c6100b12798ef72aeb16c13d3d8da8bef0a060d3162f068ea8730025e3508ea
  

9. 示例:创建一个提供apache服务器的容器
  1)通过最基础镜像创建一个容器,用于制做
[root@docker1 ~]# docker run -it -d --name abc centos /bin/bash   
[root@docker1 ~]# docker exec -it httpd-80 /bin/bash

  # yum install net-tools httpd -y
  
2) 通过httpd-80容器制一个http本地镜像
[root@docker1 ~]# docker commit httpd-80 centos:apache

  
3) 通过centos:apache镜像可以创建很多个容器
  参数说明:-p 80:80 映射本地端口到容器的对应端口上,可以配置多个端口。
[root@docker1 ~]# docker run -it -d -p 8082:80 --name apache-8082 centos:apache /usr/sbin/apachectl -D FOREGROUND   
1fb934170108b66fcdfa7c77f6673d33aca44fac63ca0b61b35f06519c3ef242
[root@docker1 ~]# docker run -it -d -p 8081:80 --name apache-8081 centos:apache /usr/sbin/apachectl -D FOREGROUND   
cc4e7689db7bd5674f131782c470cf640594d298dbc88b680fc3caeb77bce256
[root@docker1 ~]# docker run -it -d -p 8080:80 --name apache-8080 centos:apache /usr/sbin/apachectl -D FOREGROUND   
da494401dd34f843dac50e67a1a1c3077b44f9faeadff3403e50196fe4ce5318
[root@docker1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES   
da494401dd34        centos:apache       "/usr/sbin/apachectl "   5 seconds ago       Up 4 seconds        0.0.0.0:8080->80/tcp   apache-8080   
cc4e7689db7b        centos:apache       "/usr/sbin/apachectl "   17 seconds ago      Up 15 seconds       0.0.0.0:8081->80/tcp   apache-8081   
1fb934170108        centos:apache       "/usr/sbin/apachectl "   26 seconds ago      Up 25 seconds       0.0.0.0:8082->80/tcp   apache-8082   
f4b6bffcca1b        centos              "/bin/bash"              8 minutes ago       Up 8 minutes                               httpd-80   
[root@docker1 ~]#  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450361-1-1.html 上篇帖子: centos 源码升级g++版本 下篇帖子: PXE_kickstact安装Centos7.2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表