自从参预同盟社云计算部门,接触的新能力进一步多了,而且客户需求也原本越三种性,做本身一名老IT,也务必跟上节奏,接下去1段时间小编先品尝去打听docker基本作用,然后深刻去开采。

删除终止情状的器皿

         一、什么是docker?

第一找到叁个停下 状态的器皿

        Docker
是一个开源的利用容器引擎,让开垦者能够打包他们的选择以及依据包到一个可移植的器皿中,然后发表到其余流行的
Linux
机器上,也能够完结虚拟化。容器是一点一滴选取沙箱机制,相互之间不会有其余接口。

[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cd3a0312b95 docker.io/ubuntu:latest “/bin/sh -c ‘while tr” 11 minutes
ago Exited (0) 5 minutes ago elated_lalande

多少个完好的Docker有以下多少个部分组成:

删除

  1. dockerClient客户端

  2. Docker Daemon守护进度

  3. Docker Image镜像

  4. DockerContainer容器

[root@docker ~]# docker rm 9cd3a0312b95
9cd3a0312b95

     贰、如何设置docker

测试:查看

   
docker扶助在主流的操作系统平台上应用,包罗Ubuntu、Centos、Windows以及MacOS系统等。当然在linux系统平台上是原生协助,使用体验是最棒的。本分享中就以centos为例进行安装

[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2424fa7a5346 docker.io/ubuntu:latest “/bin/sh -c top” 14 minutes ago
Exited (1) 14 minutes ago dreamy_ritchie
8c8420123536 docker.io/ubuntu:latest “/bin/sh” 15 minutes ago Exited (0)
15 minutes ago modest_banach
11c1437847cb docker.io/ubuntu:latest “/bin/bash” 35 minutes ago Exited
(0) 32 minutes ago mad_fermi
5bd73ca9dcdb docker.io/ubuntu:latest “/bin/bash” 42 minutes ago Up 20
minutes sad_brahmagupta
6378eb77bbdf docker.io/ubuntu:latest “/bin/bash” 3 hours ago Exited (0)
3 hours ago berserk_bhaskara
940e7ebbb19d docker.io/ubuntu:latest “/bin/bash” 3 hours ago Exited
(127) 3 hours ago desperate_mayer
5dbb944ba21f docker.io/ubuntu “/bin/bash” 4 hours ago Exited (0) 4 hours
ago hopeful_mahavira
[root@docker ~]#

    docker帮助centos6以及背后的版本

能够发掘已经未有了。

   $yum install –y docker

去除运转中的容器

   三、镜像

先是找到三个周转中的容器,从地方的测试输出能够发掘 id是 5bd7三ca玖dcdb
的是运作状态的。

     一.拿走镜像

删除:

docker pull NAME[:TAG]    比如:docker pull Ubuntu

[root@docker ~]# docker rm -f 5bd73ca9dcdb
5bd73ca9dcdb
[root@docker ~]#

    2.查看镜像新闻

测试:查看

[root@localhost ~]# docker images;
REPOSITORY          TAG                 IMAGE ID           
CREATED             SIZE
docker.io/ubuntu    latest              00fd29ccc6f1        32 hours
ago        110.5 MB
[root@localhost ~]# docker inspect 00fd29ccc6f1

[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2424fa7a5346 docker.io/ubuntu:latest “/bin/sh -c top” 18 minutes ago
Exited (1) 18 minutes ago dreamy_ritchie
8c8420123536 docker.io/ubuntu:latest “/bin/sh” 19 minutes ago Exited (0)
19 minutes ago modest_banach
11c1437847cb docker.io/ubuntu:latest “/bin/bash” 38 minutes ago Exited
(0) 36 minutes ago mad_fermi
6378eb77bbdf docker.io/ubuntu:latest “/bin/bash” 3 hours ago Exited (0)
3 hours ago berserk_bhaskara
940e7ebbb19d docker.io/ubuntu:latest “/bin/bash” 3 hours ago Exited
(127) 3 hours ago desperate_mayer
5dbb944ba21f docker.io/ubuntu “/bin/bash” 4 hours ago Exited (0) 4 hours
ago hopeful_mahavira
[root@docker ~]#

[
    {
        “Id”:
“sha256:00fd29ccc6f167fa991580690a00e844664cb2381c74cd14d539e36ca014f043”,
        “RepoTags”: [
            “docker.io/ubuntu:latest”

能够窥见早已远非了

   叁.搜索镜像(寻找远端饭馆中国共产党享的镜像,私下认可搜索docker
HUB官方货仓中的镜像)

docker search mysql
INDEX      
NAME                                                            
DESCRIPTION                                     STARS     OFFICIAL  
AUTOMATED
docker.io  
docker.io/mysql                                                  MySQL
is a widely used, open-source relati…   5412      [OK]      
docker.io  
docker.io/mariadb                                                MariaDB
is a community-developed fork of M…   1676      [OK]      
docker.io  
docker.io/mysql/mysql-server                                    
Optimized MySQL Server Docker images. Crea…   373                 
[OK]
docker.io  
docker.io/percona                                                Percona
Server is a fork of the MySQL rela…   309       [OK]      
docker.io  
docker.io/hypriot/rpi-mysql                                     
RPi-compatible Docker Image with Mysql          74                  
docker.io  
docker.io/zabbix/zabbix-server-mysql                             Zabbix
Server with MySQL database support       66                   [OK]
docker.io  
docker.io/centurylink/mysql                                      Image
containing

四.去除镜像

docker rmi image(image可以为标签可能ID)

docker rmi Ubuntu:latest

dicker rmi –f ubuntu  强行删除,不建议如此操作

相似提议先删除正视该镜像的具有容器,再来删除镜像。

docker ps -a查看本机上设有的容器。

5.成立镜像

听别人说已有个别镜像的容器成立:

[root@localhost ~]# docker run -ti ubuntu /bin/bash

touch test

exit

docker commit –m “Added a new file” –a “docker Newbee” 8bd2274ada22 
test  9ecdbadc

依附本地模板导入

cat ubuntu –14.04-x86_64-minimal.tar.gz |docker import – ubuntu:14.04

 

6.存出和载入镜像

存出镜像

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID           
CREATED             SIZE
docker.io/ubuntu    latest              00fd29ccc6f1        2 days
ago          110.5 MB
docker.io/httpd     latest              7239615c0645        5 days
ago          177.3 MB
docker.io/mysql     latest              7d83a47ab2d2        5 days
ago   

[root@localhost ~]# docker save -o ubuntu_test.tar ubuntu
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID           
CREATED             SIZE
docker.io/ubuntu    latest              00fd29ccc6f1        2 days
ago          110.5 MB
docker.io/httpd     latest              7239615c0645        5 days
ago          177.3 MB
docker.io/mysql     latest              7d83a47ab2d2        5 days
ago          408.2 MB
[root@localhost ~]# ls
anaconda-ks.cfg  ubuntu_test.tar

载入镜像

docker load < ubuntu_test.tar

四、容器

简易地说,容器是镜像的3个运营实例,所差别的是,它涵盖额外的可写文件层。

创立容器:

新建容器:

[root@localhost ~]# docker create -it ubuntu:latest
743f20816538a52a686cf61d6a30db6fdb609c0da2d6a844e645b334b9bb3252

docker start

新建并运行容器

docker run ubuntu  /bin/echo “Hello world’

docker ps: 查看当前运营的器皿

docker ps -a:查看全体容器,包罗甘休的

docker ps -l :查看最新创造的容器,只列出最终制造的。

docker ps -n=2:-n=x选项,会列出最终制造的x个容器。

容器名:docker start docker_run,或者ID:docker start 43e3fef2266c

–restart(自动重启):暗中认可意况下容器是不重启的,–restart标记会检查容器的退出码来调控容器是不是重启容器。

docker run --restart=always --name docker_restart -d centos /bin/sh -c "while true;do echo hello world; sleep;done":

--restart=always:不管容器的再次来到码是什么样,都会重启容器。

--restart=on-failure:5:当容器的重返值是非0时才会重启容器。伍是可选的重启次数

容器终止

docker stop [NAME]/[CONTAINER ID]:将容器退出。

docker kill [NAME]/[CONTAINER ID]:强制结束多个容器。

剔除容器

docker rm [NAME]/[CONTAINER ID]

容器终止后,在需要的时候可以重新启动,确定不需要了,可以进行删除操作。

 

导入和导出容器

[root@localhost ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND               
CREATED             STATUS                     PORTS              
NAMES
dd7eef06ccba        ubuntu              “/bin/echo “Hello w”   12
minutes ago      Exited (0) 4 minutes ago                      
silly_meitner
[root@localhost ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND               
CREATED             STATUS                     PORTS              
NAMES
dd7eef06ccba        ubuntu              “/bin/echo “Hello w”   12
minutes ago      Exited (0) 4 minutes ago                      
silly_meitner
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                 
CREATED             STATUS                      PORTS              
NAMES
dd7eef06ccba        ubuntu              “/bin/echo “Hello w”     14
minutes ago      Exited (0) 7 minutes ago                       
silly_meitner
743f20816538        ubuntu:latest       “/bin/bash”              17
minutes ago      Created                                        
nostalgic_stonebraker
8bd2274ada22        ubuntu              “/bin/bash”              31
minutes ago      Exited (0) 31 minutes ago                      
sad_mccarthy
7786523990bf        ubuntu              “/bin/bash”              30
hours ago        Exited (0) 30 hours ago                        
awesome_goldstine
175c8cf0149e        ubuntu              “echo ‘hello! I am he”   30
hours ago        Exited (0) 30 hours ago                        
fervent_kowalevski
[root@localhost ~]# docker export dd7eef06ccba > test.tar

 

cat test.tar |docker import –test/ubuntu

 

五、仓库

docker 官方维护了三个国有饭馆  
,差十分的少一四千五个镜像

6、数据管理

用户在应用docker的进度中,往往要求能查看容器内接纳爆发的多寡,也许须要把容器内的数据实行相应的备份,以致想把七个容器之间进行数量的共享,那早晚关联容器的数目管理操作。容器中管理数据首要有二种方法:

  • 数据卷(Data Volumes)
  • 多少卷容器(Data Volume Containers)
在容器内创制八个数据卷

docker run -it –rm –name web -v /src/webapp:/opt/webapp
training/webapp python app.py
#将宿主机中的/src/webapp目录挂载到容器中的/opt/webapp中

多少容器
  • 率先,创立三个数目卷容器dbdata,并在里头成立3个数码卷挂载到/dbdata

docker run –name jpzhu_centos -v /jpzhu_file –rm -it centos
/bin/bash
#始建五个数据容器并且挂载个中/jpzhu_file文件作为任何容器共享的数额卷

  • 随后,可以在此外的容器中使用–volumes-from
    来挂载dbdata中的/jpzhu_file
利用多少卷容器迁移数据

备份

$ docker run –name worker -v ${pwd}:/backup –volumes-from dbdata -d
centos tar cvf /backup/backup.tar /dbdata

恢复

docker run –volumes –from dbdata2 –v(pwd):/backup busybox tar xvf /backup/backuptar

 

 

相关文章