Docker:經常使用命令大全 [七]

 1、docker的命令的解釋

一、命令解釋

docker run -d -p 80:80 nginx

run (建立並運行一個容器)
-d 放在後臺
-p 端口映射
nginx docker鏡像的名字

二、配置docker鏡像加速

vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

systemctl restart docker

三、docker容器是一種軟件的打包技術,接下來咱們體驗一下

一、傳統編譯安裝nginx:html

官網下載Nginx源碼包wget 
tar解壓源碼包
建立Nginx用戶 
安裝依賴包
編譯安裝三部曲configure,make,make install
修改nginx配置文件
啓動nginx

二、docker容器mysql

docker run -d -p 80:80 nginx

2、鏡像經常使用命令

一、搜索鏡像:

docker search

選鏡像的建議:
1,優先考慮官方
2,starts數量多linux

二、獲取鏡像:

docker pull(push)

鏡像加速器:阿里雲加速器,daocloud加速器,中科大加速器,Docker 中國官方鏡像加速:https://registry.docker-cn.comnginx

docker pull centos:6.8(沒有指定版本,默認會下載最新版)
docker pull daocloud.io/huangzhichong/alpine-cn:latest

擴展:查詢docker鏡像全部版本https://hub.docker.com/r/library/sql

三、查看刪除導出

一、查看鏡像docker

docker images

二、刪除鏡像json

docker rmi 例子:docker image rm centos:latest

三、導出鏡像centos

docker save 例子:docker image save centos > docker-centos7.4.tar.gz
docker save mysql:5.7> mysql-5.7.tar.gz

四、導入鏡像bash

docker load 例子:docker load -i docker-centos7.4.tar.gz

3、容器經常使用命令

一、運行一個容器

docker run -d -p 80:80 nginx:latest
run (建立並運行一個容器)
-d 放在後臺
-p 端口映射
nginx:latest docker鏡像的名字和版本
還有不少其餘的參數

docker run == docker create + docker start

二、進入到容器

進入容器的目的:排錯,調試網絡

進入容器的方法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
例子:	
docker exec -it 容器id或容器名字 /bin/bash

docker attach [OPTIONS] CONTAINER
例子:
docker attach 容器id或容器名字

nsenter(安裝yum install -y util-linux 棄用)

三、中止刪除容器命令

一、中止容器

docker stop CONTAINER_ID

二、殺死容器

docker kill container_name

三、查看容器列表

docker ps
docker ps –a

docker ps –a  -l

四、刪除容器

docker rm

五、批量刪除容器

docker rm -f `docker ps -a -q`

四、要獲取全部容器名稱及其IP地址只需一個命令。

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

若是使用docker-compose命令將是:

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

五、顯示容器的全部IP

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

4、容器網絡訪問經常使用命令

docker run -it --name centos6 centos:6.8 /bin/bash
-it 分配交互式的終端
--name 指定容器的名字
/bin/sh 覆蓋容器的初始命令

--cpus 指定cpu的數量
--memory 限定內存的大小
-h 指定容器的主機名

docker的本質是:在隔離的環境運行的一個進程

因此:docker容器內的第一個進程必須一直處於前臺運行的狀態(必須夯住),不然這個容器,就會處於退出狀態!

一、運行容器爲何要使用端口映射?

默認,狀況下,容器使用的ip是172.17.0.0/16網段的,外界的用戶只能訪問宿主機的10.0.0.0/24網段,

沒法訪問172.17.0.0/16網段。咱們運行容器的目的:是但願運行在容器中的服務,可以被外界訪問,

這裏就涉及到了外網10.0.0.0/24到容器內網172.17.0.0/16網段的轉換,因此須要作端口映射

二、指定映射(docker 自動添加一條iptables規則實現端口映射)

-p hostPort:containerPort
-p ip:hostPort:containerPort 
-p ip::containerPort(隨機端口)
-p hostPort:containerPort:udp
-p 81:80 -p 443:443 能夠指定多個-p 

三、隨機映射

docker run -P (隨機端口)

5、數據卷經常使用命令

一、數據卷的做用:

1:持久化容器運行過程當中產生的數據文件
2:實現多個容器間的文件共享。

正常狀況下,刪除容器,容器中全部的文件也會被刪除

二、數據卷經常使用命令

一、建立一個數據卷

docker volume create

二、查看數據卷列表

docker volume ls

三、刪除一個數據卷

docker volume rm

四、查看一個數據卷的屬性

docker volume inspect

三、docker數據卷運用一

docker volume create luoahong

docker run -d -p 80:80 -v luoahong:/usr/share/nginx/html nginx:latest

cd /var/lib/docker/volumes/luoahong/_data/
rm -f *
wget https://www.qstack.com.cn/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip

docker run -d -p 81:80 -v luoahong:/usr/share/nginx/html nginx:latest
docker run -d -p 82:80 -v luoahong:/usr/share/nginx/html nginx:latest

四、把宿主機的目錄掛載到容器中

cd /opt
mkdir xiaoniao
cd xiaoniao/
wget https://www.qstack.com.cn/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip

重點

docker run -d -p 83:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest
相關文章
相關標籤/搜索