1. 程式人生 > 其它 >Docker筆記(一) Docker基礎概述

Docker筆記(一) Docker基礎概述

Docker學習

Docker概述

Docker為什麼會出現?

特性 容器 虛擬機器
啟動 秒級 分鐘級
硬碟使用 一般為 MB 一般為 GB
效能 接近原生 弱於
系統支援量 單機支援上千個容器 一般幾十個

Docker技術優點

  • 更快速的交付和部署
  • 更便捷的升級和擴縮容
  • 更簡單的系統運維
  • 更高效的計算資源利用
  • 一致的執行環境
  • 更輕鬆的遷移

Docker安裝

Docker基本組成

映象(image)

容器(container)

倉庫(repository)

安裝Docker

環境準備

安裝

1.0 解除安裝舊的版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.0 需要的安裝包

sudo yum install -y yum-utils

3.0 設定映象倉庫

國外

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里雲(推薦使用,快!快!快!)

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.0安裝docker相關內容

docker-ce 社群版

docker-ee 企業版(需要授權)

更新索引

yum makecache fast

安裝docker Engine

sudo yum install docker-ce docker-ce-cli containerd.io

5.0啟動docker

sudo systemctl start docker

檢視docker版本

sudo docker version

6.0測試hello-world

sudo docker run hello-world

7.0 檢視下載映象

sudo docker images

阿里雲映象加速

Docker常用命令

幫助命令

docker version # 顯示docker的版本資訊
docker info    # 顯示docker的系統資訊,包括映象和容器的數量
docker --help  # 幫助命令

幫助文件Reference documentation | Docker Documentation

映象命令

[root@node1 ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB

# 解釋
REPOSITORY 映象的倉庫源
TAG 映象的標籤
IMAGE ID 映象的id
CREATED 映象的建立時間
SIZE 映象的大小

docker search搜尋映象

docker search mysql

docker pull 下載映象

docker pull mysql

docker rmi刪除映象

docker rmi -f 容器id

容器命令

注:先有映象測才能建立容器,下載centos映象

docker pull centos

新建容器並啟動

docker run [可選引數] image
# 引數說明
--name="Name" 容器名
-d  後臺方式執行
-it 使用互動方式執行,進入容器檢視內容
-p 指定容器的埠 -p 8080:8080
	-p ip:主機埠:容器埠
	-p 主機埠:容器埠(常用)
	-p 容器埠
-P 隨機指定埠

啟動並進入容器

[root@node1 ~]# docker run -it centos /bin/bash
[root@40153b62f4de /]# 

退出容器

# 直接容器停止並退出
[root@40153b62f4de /]# exit
exit

# 退後容器不停止
Ctrl+P+Q

檢視容器

# docker ps 命令
-a # 執行過的容器
-n=? #顯示最近建立的容器
-q #只顯示容器的編號

# 執行的
[root@node1 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 執行過的
[root@node1 ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED             STATUS                         PORTS     NAMES
40153b62f4de   centos        "/bin/bash"   2 minutes ago       Exited (0) 35 seconds ago                optimistic_kalam
6509d33ff71c   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             nice_lewin
4e86a9fd5dd8   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             great_carson
[root@node1 ~]# 

刪除容器

docker rm 容器id

啟動和停止容器

docker start 容器id # 啟動容器
docker restart 容器id # 重啟容器
docker stop 容器id # 停止容器
docker kill 容器id # 強制停止容器

常用其他命令

後臺啟動容器

# 後臺啟動容器
docker run -d 映象名
# 常見的坑: docker容器使用後臺執行,就必須要有要一個前臺程序,docker發現沒有應用,就會自動停止。

檢視日誌命令

# 檢視日誌命令
docker logs  [引數] [容器id]

# -tf  顯示日誌
# --tail [日誌條數]
docker logs  -tf [容器id]
docker logs  -tf --tail 10 [容器id]

檢視容器內部程序資訊

# 檢視容器內部的程序資訊
docker top [容器id]

檢視映象元資料

docker inspect [容器id]

進入當前正在執行的容器

#通常容器都是使用後臺執行
#方式一,進入容器開啟一個新的終端,可以在裡面操作(常用)
docker exec -it [容器id] /bin/bash

#方式二,進入正在執行的終端,不會啟動新的程序
docker attach [容器id]

從容器內拷貝檔案到主機

docker cp [容器id]:容器原始檔 主機目標檔案
#示例
docker cp [容器id]:/home/test.java test.java

Docker實操練習

部署nginx

搜尋映象

docker search nginx

下載映象

docker pull nginx

檢視映象

docker images

REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
nginx         latest    87a94228f133   9 days ago    133MB
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB
centos        latest    5d0da3dc9764   5 weeks ago   231MB

啟動映象

# -d 後臺執行
# --name 宿主名字
# -p 宿主機埠:容器內埠
docker run -d --name nginx01 -p 3344:80 nginx

執行測試

[root@node1 ~]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@node1 ~]# 

進入容器

[root@node1 ~]# docker exec -it nginx01 /bin/bash
root@649edc671df1:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@649edc671df1:/# 
本篇內容是參考網路教程學習過程中的筆記
開發工作著,生活快樂著,留下總結,相互交流,共同進步