docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

 

实验环境

centos7.3_x64

 

实验软件

docker-1.13.1-162.git64e9980.el7.centos.x86_64

 

软件安装

cp -pv /etc/hosts /etc/hosts.bak

echo 192.168.10.14 docker > /etc/hosts

hostnamectl set-hostname docker

uname  -sr         查看内核版本

Linux 3.10.0-514.el7.x86_64

 

yum install -y axel vim lsof ntp curl psmisc bind-utils iftop  

yum install -y yum-utils device-mapper-persistent-data lvm2 bridge-utils device-mapper docker-ce

systemctl stop firewalld.service && systemctl disable firewalld.service

systemctl stop NetworkManager  && systemctl disable NetworkManager

echo SELINUX=disabled > /etc/sysconfig/selinux

systemctl daemon-reload && systemctl   start docker && systemctl enable docker

docker --version

Docker version 19.03.12, build 48a66213fe

 

cat /etc/docker/daemon.json    配置docker镜像加速

{

  "registry-mirrors": ["https://m1sc70wl.mirror.aliyuncs.com"]

}

 

镜像管理

docker search -s300 tomcat                                              搜索镜像

INDEX       NAME                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

docker.io   docker.io/tomcat           Apache Tomcat is an open source implementa...   2775      [OK]

docker pull tomcat                                                      下载镜像

docker images                                                           查看可用镜像

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

tomcat              latest              6055d4d564e1        5 days ago          647MB

centos              latest              831691599b88        3 weeks ago         215MB

mysql               latest              be0dbf01a0f3        4 weeks ago         541MB

docker rmi -f docker.io/centos                                          删除单个镜像 -f为强制

docker rmi -f $(docker images -qa)                                   删除多个镜像 

docker save -o /root/mysql.tar.gz   mysql                         保存镜像

docker load < /root/mysql.tar.gz                                      导入镜像

 

容器管理

docker run -it centos /bin/bash                                    启动容器 容器名字 id均可

docker run -it --name centos11 centos                              启动容器 从命名

docker run -itd -p 888:80 nginx                                    启动镜像映射端口 -p制定端口 -P为随机端口 -d后台启动

docker ps | grep nginx

52642942cf7e        nginx               "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:888->80/tcp      suspicious_lamport

docker exec -t 52642942cf7e curl http://localhost/index.html | grep Welcome   

<title>Welcome to nginx!</title>

 

exit/ctl+q+p                                                       exit停止退出 ctrl+q+p 不停止退出

docker inspect  mysql                                              查看容器结构

                                        

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

e95d4df37d2f        centos              "/bin/bash"         17 seconds ago      Up 16 

 

docker start/restart/stop e95d4df37d2f        启动/重启/停止容器  容器id

docker attach e95d4df37d2f                     未停止容器 从新进入

docker exec -t f3d96985d10b uname -a            容器外执行命令

Linux f3d96985d10b 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

docker cp f3d96985d10b:/tmp/ks-script-585nin8f /root  复制容器文件到宿主机

docker  kill  e95d4df37d2f                     强制关闭容器

docker  rm    e95d4df37d2f                     删除容器

 

自定义dockerfile

mkdir -pv /var/docker

mkdir -pv /var/docker/redis

touch /var/docker/redis/Dockerfile

 

cat /var/docker/redis/Dockerfile 

FROM centos:7.5.1804

MAINTAINER 115946156@qq.com

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

RUN yum -y install epel-release && yum -y install redis  && yum install -y net-tools

 

EXPOSE 6379

 

RUN yum clean all

 

RUN sed -i.bak -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf

RUN echo "requirepass 123456" >> /etc/redis.conf

 

ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]

CMD []

docker build -t redis .  构建镜像

docker run -itd -p 6333:6379 redis  运行镜像

docker save -o /root/redis.tar.gz redis  备份镜像到宿主机

 

docker images | grep redis

redis               latest              18f4ae439e80        About a minute ago   486MB

docker ps | grep redis

8bb366f62504        redis               "/usr/bin/redis-serv…"   About a minute ago   Up About a minute   0.0.0.0:6333->6379/tcp   zen_thompson

 

配置容器卷

docker images | grep centos

centos              latest              831691599b88        3 weeks ago         215MB

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES

4c9434259ed0        centos:latest       "/bin/bash"         3 minutes ago       Up 3 minutes      

 

mkdir -pv /web/test &&  touch /web/test/aa.html    docker宿主机操作

docker run -it -v /web/test/:/var/www/html centos               -v 宿主机目录:容器目录  镜像名

touch /web/test/dd.html     dockr宿主机操作

docker exec -t 4c9434259ed0 ls -l /var/www/html | grep dd.html

-rw-r--r-- 1 root root 0 Jul 12 15:53 dd.html

 

docker network ls

NETWORK ID          NAME              DRIVER          SCOPE

78eeb0ba5619        bridge              bridge           local

a948abc2cc21        host                  host               local

bd0605474e74       none                 null                local

 

ip addr | grep docker0

docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 

    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

 

ps -ef | grep docker

root      13889      1  1 20:53 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值