Docker docker部署以及運行你的第一個容器

安裝 Docker


本節我們將在centos7.4中安裝 Docker。

Docker 支持幾乎所有的 Linux 發行版,也支持 Mac 和 Windows。各操作系統的安裝方法可以訪問:https://docs.docker.com/engine/installation/

Docker 分爲開源免費的 CE(Community Edition)版本和收費的 EE(Enterprise Edition)版本。下面我們將按照文檔,通過以下步驟安裝 Docker CE 版本。

配置docker ce版本的repo源

[root@localhost yum.repos.d]# cat docker-ce.repo 
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://download.docker.com/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

使用yum源安裝docker 


[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# ll /etc/yum.repos.d/epel*
-rw-r--r-- 1 root root 1050 Sep 17  2019 /etc/yum.repos.d/epel.repo
-rw-r--r-- 1 root root 1149 Sep 17  2019 /etc/yum.repos.d/epel-testing.repo


yum安裝軟件包,我這裏安裝CE版本不安裝1.13版本
[root@localhost ~]# yum install docker* -y 1.13版本
[root@localhost ~]# yum install docker-ce* -y CE版本社區版本

檢擦docker軟件包是否部署成功
[root@localhost ~]# rpm -qa | grep docker
[root@localhost ~]# yum list -C docker

啓動docker引擎服務,並且查看版本
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker version
Server: Docker Engine - Community
 Engine:
  Version:          19.03.12
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       48a66213fe
  Built:            Mon Jun 22 15:45:28 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

可以看到和mysql一樣C/S架構,有客戶端和服務端。通過下面socket文件來進行本地通信
[root@localhost ~]# ps -ef | grep docker
root      23788      1  0 05:25 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
[root@localhost ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13433               [OK] 


將鏡像拉取到本地
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
8559a31e96f4: Downloading  1.948MB/27.1MB
8d69e59170f7: Download complete 
3f9f1ec1d262: Download complete 
d1f5ff4f210d: Download complete 
1e22bfa8652e: Download complete 

或者將nginx.tar鏡像包導入到你的鏡像列表裏面,因爲拉取鏡像很慢,我將tar包上傳了
如果nginx鏡像是通過windows上傳nginx.tar,導入的nginx鏡像命令:
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@localhost ~]# ls
anaconda-ks.cfg  nginx.tar
[root@localhost ~]# docker load <nginx.tar 
1c95c77433e8: Loading layer  72.47MB/72.47MB
002a63507c1c: Loading layer  57.31MB/57.31MB
12fdf55172df: Loading layer  3.584kB/3.584kB
Loaded image: nginx:latest
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              5a3221f0137b        10 months ago       126MB
[root@localhost ~]# docker run -itd -p 80:80 nginx
314d1d01c94136a35dcb07016814437666331d8f7b441f5d0a1f66863848c413
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
314d1d01c941        nginx               "nginx -g 'daemon of??   6 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp   happy_mirzakhani


或者這種方式導入鏡像也可以,但是不建議,創建容器報錯
[root@localhost ~]# cat nginx.tar | docker import - nginx:v1
sha256:0dd1a59f537a0760b91897283e7e568bbc29b3971337c31a630042a1a049fd7c
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v1                  0dd1a59f537a        2 seconds ago       130MB
nginx               latest              b2ebe65d87c7        2 minutes ago       130MB

[root@localhost ~]# docker run -itd -p 81:80 nginx:v1
docker: Error response from daemon: No command specified.



Run,全新創建一臺容器;
-i,interactive交互模式;
-t,tty打開登陸終端;
-d,detach後臺運行、啓動;
-p,publish發佈端口,將宿主機80(第一個)DNAT映射至容器的80;第一個80端口是宿主機的端口,這個端口是宿主機上面需要開啓的,如果宿主機上80端口被佔用了是不行的,通過DNAT映射

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章