Docker(一)--簡介及其部署與簡單應用

一.docker簡介

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

一個完整的Docker有以下幾個部分組成
DockerClient客戶端
Docker Daemon守護進程
Docker Image鏡像
DockerContainer容器

docker架構:

Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。Docker 容器通過 Docker 鏡像來創建。容器與鏡像的關係類似於面向對象編程中的對象與類。
Docker採用 C/S架構 Docker daemon 作爲服務端接受來自客戶的請求,並處理這些請求(創建、運行、分發容器)。 客戶端和服務端既可以運行在一個機器上,也可通過 socket 或者RESTful API 來進行通信。
Docker daemon 一般在宿主主機後臺運行,等待接收來自客戶端的消息。 Docker 客戶端則爲用戶提供一系列可執行命令,用戶用這些命令實現跟 Docker daemon 交互。

二.搭建docker

1.獲取docker安裝包並安裝
在這裏插入圖片描述
2.打開docker,查看相關信息

[root@server1 docker]# systemctl start docker.service 
[root@server1 docker]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.7MiB
Name: server1
ID: OADG:XF6V:ABNB:VH5H:EWVI:CEBS:6UEW:HTSC:WNDB:EZZC:IUSA:XQ5Y
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

注意:docker初始化會刷新防火牆,不要重啓防火牆防止後面的端口影射出現問題

三.運行2048小遊戲

1導入2048鏡像

[root@server1 ~]# ls
docker  game2048.tar
[root@server1 ~]# docker load -i game2048.tar 
011b303988d2: Loading layer [==================================================>]   5.05MB/5.05MB
36e9226e74f8: Loading layer [==================================================>]  51.46MB/51.46MB
192e9fad2abc: Loading layer [==================================================>]  3.584kB/3.584kB
6d7504772167: Loading layer [==================================================>]  4.608kB/4.608kB
88fca8ae768a: Loading layer [==================================================>]  629.8kB/629.8kB
Loaded image: game2048:latest

在這裏插入圖片描述2.查看是否導入成功

[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
game2048            latest              19299002fdbe        2 years ago         55.5MB

3.創建容器

[root@server1 ~]# docker run -d -p 80:80 --name vm1 game2048		
##-d是打入後臺,–name表示爲這個容器起了一個名字爲vm1 前面的80是server1這個物理機的端口。後面的80是容器的端口
a5d01a3defddac9ac1913affd4618aee09a07400ffdb087da55791d2b1899451

4.查看容器狀態

[root@server1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
a5d01a3defdd        game2048            "/bin/sh -c 'sed -i …"   7 seconds ago       Up 6 seconds        0.0.0.0:80->80/tcp, 443/tcp   vm1

5.測試:
在瀏覽器訪問172.25.31.1
在這裏插入圖片描述
在這裏插入圖片描述

四.docker常用命令

docker load -i  game2048.tar 導入鏡像
docker run -d -p 80:80 --name vm1 game2048 創建容器,其中以game2048爲鏡像,添加端口映射
docker ps  ##查看可用容器
docker ps -a 查看所有容器,包括可用的和沒有正常退出容器導致容器不可用的
docker attach vm1  進入容器
docker top vm1 查看容器進程
docker logs vm1 查看容器指令輸出
docker inspect vm1 查看容器詳細信息
docker status vm1  查看容器的資源使用率
docker diff vm1  查看容器的修改
docker stop vm1   停止容器  
docker start  vm1  啓動容器
docker kill  vm1  強制停止容器
docker rm -f  vm1 刪除容器,後面也可直接輸入容器id
docker rmi  刪除鏡像

ctrl+pq   結束docker與內核的交互式界面,但不停止容器,在後臺運行的
ctrl+d   直接結束容器,釋放內存,但是鏡像還在,只是在可用容器裏面查不到,但是在所有容器裏面還是可以查看到容器信息的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章