1. 程式人生 > 其它 >docker安裝、基本命令

docker安裝、基本命令

==官網:
https://www/docker.com
docker [碼頭工人]

==Docker 概述
Docker 是一個應用程式開發、部署、執行的平臺,使用 go 語言開發。
相較於傳統的主機虛擬化,Docker 提供了輕量級的應用隔離方案,並且為我們提供了應用程式快速擴容、縮容的能力。

docker 服務相當於鯨魚,container容器就是集裝箱

==實驗準備
部署docker容器虛擬化平臺
==解除安裝舊版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

==安裝docker環境依賴
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
==安裝源
y yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
==docker安裝
yum install docker-ce docker-ce-cli containerd.io -y

==啟動
systemctl start docker && systemctl enable docker


==搜尋 映象
docker search centos

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 6634 [OK]
ansible/centos7-ansible Ansible on Centos7 134 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 129 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 118 [OK]
centos/systemd systemd enabled base container. 100 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 88
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
tutum/centos Simple CentOS docker image with SSH access 48
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 40
kinogmt/centos-ssh CentOS with SSH 29 [OK]
guyton/centos6 From official centos6 container with full up… 10 [OK]
nathonfowlie/centos-jre Latest CentOS image with the JRE pre-install… 8 [OK]
centos/tools Docker image that has systems administration… 7 [OK]
drecom/centos-ruby centos ruby 6 [OK]
mamohr/centos-java Oracle Java 8 Docker image based on Centos 7 3 [OK]
darksheer/centos Base Centos Image -- Updated hourly 3 [OK]
indigo/centos-maven Vanilla CentOS 7 with Oracle Java Developmen… 2 [OK]
dokken/centos-7 CentOS 7 image for kitchen-dokken 2
ovirtguestagent/centos7-atomic The oVirt Guest Agent for Centos 7 Atomic Ho… 2
amd64/centos The official build of CentOS. 2
miko2u/centos6 CentOS6 日本語環境 2 [OK]
blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
mcnaughton/centos-base centos base image 1 [OK]
smartentry/centos centos with smartentry 0 [OK]
starlabio/centos-native-build Our CentOS image for native builds 0 [OK]


==配置映象加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
針對Docker客戶端版本大於 1.10.0 的使用者

您可以通過修改daemon配置檔案/etc/docker/daemon.json來使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://tcrgvc8r.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker
==拉取映象
docker pull centos
==開啟網路轉發功能:
預設開啟
[root@bogon ~]# cat /proc/sys/net/ipv4/ip_forward
1
==檢視:
docker images

==docker 執行:
[root@bogon ~]# docker run -it centos bash
[root@e148efa38210 /]#
-i 以互動式執行容器
-t 為容器重新分配一個偽輸入終端
-d 後臺執行
-c 後面跟待完成命令
==例項:
docker run -d centos:latest /bin/bash -c "while true; do echo hello world; sleep 1; done"
19db9652bfe4643b5ba36097d32db0f2e2139e0ed705b7703a1a36bb55c1cf20
一個死迴圈一直往docker裡面寫hello word
while true;
do
echo hello world;
sleep 1;
done
==檢視:從容器中取日誌,檢視輸出的內容,可用於後期檢查docker例項
輸出中彈出的錯誤
語法:docker logs 容器name id
docker logs 19db9652bfe4643b5ba36097d32db0f2e2139e0ed705b7703a1a36bb55c1cf20

docker ps #列出所有執行的容器
docker ps -a #累出所有容器(包括沉睡/退出狀態的容器)

docker kill + 容器id # 殺死程序


對映埠:
docker run -d -p 80:80 centos:latest

==docker 容器命名和重新命名
容器命名語法:docker run -d --name 容器例項名 容器映象名 要執行的命令
docker run -itd --name docker1 centos:latest bash
容器重新命名語法:docker rename 舊容器名 新容器名
例:
==執行一個名字為docker1的容器
docker run -itd --name docker1 centos:latest bash

==例2:
docker rename docker1 docker2
==建立docker容器例項時指定主機名
docker run -it --name 容器名 -h 指定主機名 映象 /bin/bash

[root@kill ~]# docker run -it --name docker3 -h kill.com centos bash
[root@kill /]#


==讓docker容器開機自動啟動
語法:docker run --restart=always -itd --name 容器名 映象 /bin/bash
引數:--restart=always #在容器退出時候總是重啟
docker run --restart=always -itd --name docker4 centos bash
測試 systemctl restart docker
docker ps 檢視
==重啟策略:
no ,預設策略,在容器退出時不重啟容器
on-failure,在容器非正常退出時(退出狀態非0),才會重啟容器
on-failure:3 ,在容器非正常退出時,最多重啟3次 failure(失敗)
always,在容器中退出時總是重啟

unless-stopped ,在容器退出時總是重啟容器,但不考慮守護程序啟動時就已經停止了的容器
==如果建立時未指定 --restart=always,可以通過update 命名設定
語法:docker update--restart=always 容器ID或名字
例:
docker run -itd --name lihong666 centos bash
docker update --restart=always lihong666
systemctl stop docker
systemctl start docker
docker ps #檢視