ドッカーコンテナエントリ、インストールドッカー、理解と(a)の画像を使用して

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/ck784101777/article/details/102496159

、ドッカーコンテナの導入

1.コンテナとは何ですか

    ドッカーコンテナは、ポータブル容器に均一にパッケージに自社のアプリケーションとの依存関係を開発者にすることができますオープンソースのアプリケーション・コンテナエンジンであり、その後、(人気のあるなど、インストール用ドッキングウィンドウエンジンで任意のサーバーに公開のLinuxマシン、Windowsマシン)を達成することが可能で、仮想化を容器は、完全に利用されサンドボックス機構は、互いの間(iPhoneアプリと同様に)任意のインターフェイスを持っていないであろう。ほとんどのパフォーマンス・オーバーヘッドは、簡単にマシンとデータセンター内で実行することはできません。最も重要なことは、彼らは、システムのフレームワークを含む、任意の言語に依存しないことです。

 早くとしてプロセスを開始することができ、血管を開始

2.dockerコンテナのコア技術

ドッキングウィンドウコンテナを構築し、この3つの技術

Cgroups-リソース管理[ https://www.cnblogs.com/menkeyi/p/10941843.html ]

ネームスペースでプロセス分離[ https://www.cnblogs.com/sparkdev/p/9365405.html ]

SELinux-セキュリティ[ https://blog.csdn.net/yanjun821126/article/details/80828908 ]

3.ドッキングウィンドウとは何ですか

ドッカーは、コンテナ管理システムの完全なセットです

ドッカーは、あまりにも多くの関係基盤となるコア技術を必要とせずに、ユーザーがより簡単に、コンテナ技術を使用することができるように、コマンドのセットを提供します

4.Dockerの利点

- 伝統的な仮想化技術に比べて、より小さなコンテナユニットは、より迅速に、それを作成します

- 伝統的仮想マシンは、オペレーティング・システムをインストールするには、各仮想マシンを与える必要が

- 共有コンテナプログラムをライブラリと使用

>ライブラリサポート(Libsの) - - >アプリケーション層(APP)3を、OS(オペレーティングシステム)をサポートする仮想化技術

ドッカーコンテナおよびオペレーティングシステムを省略し、唯一の二つの層を必要とし、ライブラリのサポート(Libsの) - >アプリケーション層(APP)

5.Docker不備

- コンテナの単離は強いの仮想化ではありません

- 共有Linuxカーネル、セキュリティ、先天性欠損

-SELinux反抗

- コンテナとコンテナのトラブルシューティング挑戦の監視

 

 

第二に、インストールドッカ

環境:CentOS7.2

仮想マシンと実マシンの準備、yumをソースデバイス上に配置され、ftpはyumを、仮想マシン上の設定ファイルを変更し、FTPミラーマウントにソフトウェアをインストールします

1. yumの倉庫を設定 - 実機を操作します

また、ドッキングウィンドウCentOSのパッケージは、ミラーでサポートされているが、また、ミラー支持RHEL7-extras.isoが必要です

[RHEL7-extras.isoダウンロード] https://github.com/ck784101777/DockerSupport

ダウンロード-yローカルのyumにはgitをインストール| gitのクローン  https://github.com/ck784101777/DockerSupport / RHEL7、extras.iso

この例では、2つの画像を必要とし、ダウンロード私のgithubの中、かつての後者をダウンロードするには、公式サイトをご覧ください:

CentOS7.iso  

RHEL7-extras.iso

[root@realhost ~]#systemctl enable vsftpd #开机自启ftp服务

[root@realhost ~]#systemctl start vsftpd #启动fpt

[root@realhost ~]#yum install vsftpd -y #安装vsftpd软件,没有yum配置的话,可以使用rpm安装

[root@realhost ~]#cd /var/ftp[root@realhost ~]#cd /var/ftp

[root@realhost ~]#mkdir /local            //创建两个目录

[root@realhost ~]#mkdir /extra

[root@realhost ~]#mount CentOS7.iso /var/ftp/local       //挂载到ftp下

[root@realhost ~]#mount RHEL7-extras.iso /var/ftp/extra

2.配置yum源-虚拟机

[root@virturalhost ~]#vim /etc/yum.repos.d/local.repo

[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/local"  #ip/相对路径
enabled=1
gpgcheck=0

[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.254/extras/"
enabled=1
gpgcheck=0
 

3.安装Docker-虚拟机

  1. [root@docker1 ~]# yum -y install docker
  2. [root@docker1 ~]# systemctl restart docker
  3. [root@docker1 ~]# systemctl enable docker
  4. [root@docker1 ~]# ifconfig     //有docker0说明环境部署完成
  5. docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
  6. inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
  7. ether 02:42:3e:e7:3f:6e txqueuelen 0 (Ethernet)
  8. RX packets 0 bytes 0 (0.0 B)
  9. RX errors 0 dropped 0 overruns 0 frame 0
  10. TX packets 0 bytes 0 (0.0 B)
  11. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  12. [root@docker1 ~]# docker version        //查看版本
  13. Client:
     Version:         1.12.6
     API version:     1.24
    ........

 

三、Docker镜像

1.什么是镜像

docker官方镜像仓库:http://hub.docker.com

-Docker容器是基于镜像启动的

-镜像是启动容器的核心

-镜像采用分层设计

-使用COW技术(写时复制),分为前后端盘,确保底层数据不丢失

如图,镜像是不可修改的,我们根据镜像创造容器

 

2.镜像的命令

-docker images 查看镜像列表

-docker history 查看镜像制作历史

-docker inspect 查看镜像底层信息

-docker pull 下载镜像

-docker push 上传镜像

-docker rmi 删除本地镜像

-docker save 镜像另存为tar包

-docker load 使用tar包导入镜像

-docker search 搜索镜像

-docker tag 修改镜像名称和标签

更多的命令可以通过man docker查看,或者通过man docker-ran 查看某个命令的详细信息

3.镜像的操作

1)搜索镜像

如果你想要获得一个镜像的信息,你可以先搜索这个镜像,比如你想获得一个nginx的镜像,你就搜索nginx,或者你想获得一些其他的像ssh,httpd,ftp都可以搜索的到

命令:docker search 镜像名

注意,加了[OK]的代表是官方的,安全可靠,没有加的需要考量一下安全性

[root@docker1 ~]# docker search nginx
INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                             Official build of Nginx.                        12045     [OK]       
docker.io   docker.io/jwilder/nginx-proxy               Automated Nginx reverse proxy for docker c...   1671                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable ...   742                  [OK]
docker.io   docker.io/linuxserver/nginx                 An Nginx container, brought to you by Linu...   79                   
docker.io   docker.io/bitnami/nginx                     Bitnami nginx Docker Image                      71 

2)下载镜像 

搜索之后你肯定要下载

命令:docker push 镜像名

[root@docker2 ~]# docker pull docker.io/nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ... 
latest: Pulling from docker.io/library/nginx
b8f262c62ec6: Downloading 5.598 MB/27.09 MB
e9218e8f93b1: Downloading 5.111 MB/23.57 MB
7acba7289aa3: Download complete 

3)查看镜像

可以查看当前安装的镜像

命令:docker images

从左到右的列依次为:仓库 标签 镜像ID 创建时间 大小

[root@docker1 ~]# docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx                       latest              42b4762643dc        8 months ago        109.2 MB
 

4)导出镜像

命令:docker save 镜像名:标签 -o 导出文件名

[root@docker1 ~]# docker save docker.io/nginx:latest -o nginx.tar

[root@docker1 ~]# ls

nginx.tar

5)导入镜像

命令:docker load -i 文件名

[root@docker2 ~]# ls

nginx.tar

[root@docker2 ~]# docker load -i nginx.tar

3c816b4ead84: Loading layer 58.47 MB/58.47 MB

787822cf1b17: Loading layer 54.44 MB/54.44 MB

89decbdf7fb7: Loading layer 3.584 kB/3.584 kB

Loaded image: docker.io/nginx:latest/3.584 kB

[root@docker2 ~]# docker images          //查看是否导入成功

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.io/nginx latest 42b4762643dc 4 weeks ago 109.2 M e1ddd7948a1c 4 weeks ago 1.163 MB

6)删除镜像

命令:docker rmi 镜像名:标签/镜像ID

如果你的nginx不唯一,最好使用镜像id删除

  1. [root@docker1 docker]# docker rmi docker.io/nginx
  2. Untagged: docker.io/nginx:latest
  3. Deleted: sha256:42b4762643dcc9bf492b08064b55fef64942f055f0da91289a8abf93c6d6b43c
  4. Deleted: sha256:e0e55dd2303b3e3ec852acae267d1f8a3eea27a22c64a5829304ecee4d3f559c
  5. Deleted: sha256:4062cf272cdd99e83b1c21f712e5e1359c91ecf92925e56c62133c3324b84e45
  6. Deleted: sha256:3c816b4ead84066ec2cadec2b943993aaacc3fe35fcd77ada3d09dc4f3937313

7)启动容器

你可以选择直接允许脚本或者放在后台执行

命令:

直接运行:docker run -it 镜像名:标签  执行脚本(非必须)

后台运行:docker runt itd 镜像名:标签 执行脚本(非必须)

  1. [root@docker1 docker_images]# docker run -it docker.io/centos /bin/bash
  2. [root@7a652fc72a9f /]# ls /
  3. anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

8)查看后台容器-需后台运行

命令:docker ps

  1. [root@docker1 docker]# docker ps    
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 81458156f6e8 docker.io/nginx "nginx -g 'daemon off" 9 seconds ago Up 8 seconds 80/tcp pedantic_goldberg

9)运行后台镜像

运行后台镜像,run+镜像前3位即可

  1. [root@docker1 docker]# docker run it 814
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 81458156f6e8 docker.io/nginx "nginx -g 'daemon off" 9 seconds ago Up 8 seconds 80/tcp pedantic_goldberg

10 )停止后台容器

命令:docker stop id号

  1. [root@docker1 docker]# docker stop 814
  2. 814

11)修改tag标签

命令:docker tag 原名:原标签 修改后名:新标签

  1. [root@docker1 docker_images]# docker tag docker.io/centos:latest docker.io/cen:v1
  2. [root@docker2 ~]# docker images
  3. REPOSITORY TAG IMAGE ID CREATED SIZE
  4. docker.io/centos latest 42b4762643dc 4 weeks ago 109.2 MB
  5. docker.io/cen v1 42b4762643dc 4 weeks ago 109.2 MB

12)查看容器的底层信息

这个功能很强大,可以查看到镜像的很多信息

 [root@docker1 docker_images]# docker inspect docker.io/centos

13)连接容器attach|exec

我们可以用docker ps 查看后台运行的进程(容器),前面讲过如何启动,docker run -it 镜像id,而这条命令其实是使用的attach连接的容器(默认连接方式),这样连接你退出来就直接关闭容器了,但是很多情况我们希望退出容器后不关闭容器,那么我们就要使用exec去连接

-attach 进入容器,exit会关闭容器

-exec 进入容器,exit不会关闭容器,仍然放到后台

命令格式: docker attach/exec -it 容器id /bin/bash

那是不是说我用attach进入容器后退出就没有方法保留容器了?

我们可以输入ctrl+p+q退出(按住ctrl,按一下p,再按一下q,不是连按),这样退出会保留容器

  1. [root@docker1 docker]# docker attach 0f
  2. [root@docker1 docker]# docker ps //容器关闭
  3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4. [root@docker1 docker]# docker exec -it 0f /bin/bash
  5. [root@docker1 docker]# docker ps        //容器不会关闭
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  7. 0b3c50284a1c docker.io/centos "/bin/bash" 15 minutes ago Up 15 minutes tiny_lamarr

 

おすすめ

転載: blog.csdn.net/ck784101777/article/details/102496159
おすすめ