国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)

這篇具有很好參考價值的文章主要介紹了【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本篇文章開始給大家介紹Docker,這個是我非常喜歡的一個服務(wù),介紹給大家,希望大家也能喜歡!

目錄

何為容器

Docker環(huán)境安裝部署

一、yum安裝(CentOS7.9)

二、rpm包安裝(CentOS)

三、卸載docker環(huán)境

四、安裝指定的docker版本

五、Ubuntu安裝docker環(huán)境

六、使用deb安裝docker

七、Ubuntu卸載docker環(huán)境

八、二進(jìn)制安裝docker在Linux系統(tǒng)(CentOS,Ubuntu)

1、部署流程

2、二進(jìn)制部署腳本

Docker鏡像管理基礎(chǔ)

一、查看鏡像

二、給鏡像打標(biāo)簽

三、本地鏡像遷移(導(dǎo)入導(dǎo)出)

四、下載鏡像

五、刪除鏡像

六、自定義鏡像

容器管理常用命令

一、查看容器

二、運行容器

三、連接到指定的容器

四、刪除所有的容器

五、查看容器的IP地址,查看IPAddress字段即可

六、案例:使用docker部署ES節(jié)點

擴(kuò)展

一、搭建私有的yum倉庫,實現(xiàn)docker的私有倉庫部署,要求可以指定版本

二、在windows上安裝docker環(huán)境


何為容器

所謂的容器技術(shù)就是能夠?qū)⒂嬎銠C的程序及其所依賴的庫進(jìn)行打包的一種技術(shù)手段,方便進(jìn)行傳輸,部署,運行;容器可以實現(xiàn)幫我們將程序和其所依賴的庫文件進(jìn)行打包。

Docker環(huán)境安裝部署

一、yum安裝(CentOS7.9)

1、卸載舊的docker版本

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

2、配置docker軟件源

[root@Docker01 ~]# curl -s -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

3、安裝docker

[root@Docker01 ~]# yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4、啟動docker服務(wù)

[root@Docker01 ~]# systemctl enable --now docker

5、查看docker服務(wù)

[root@Docker01 ~]# docker version    #在服務(wù)端查看詳細(xì)信息
Client: Docker Engine - Community
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:55:21 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:54:24 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

[root@Docker01 ~]# docker -v    #在本地查看是否有docker
Docker version 24.0.2, build cb74dfc

6、驗證docker是否安裝成功

[root@Docker01 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete 
Digest: sha256:fc6cf906cbfa013e80938cdf0bb199fbdbb86d6e3e013783e5a766f50f5dbce0
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

7、新手必備自動補全功能

docker --help可以查看使用方式,安裝自動補全后按tab即可

[root@Docker01 ~]# yum -y install bash-completion
[root@Docker01 ~]# source /usr/share/bash-completion/bash_completion
[root@Docker01 ~]# docker     #按tab鍵即顯示
attach     help       pause      stack
build      history    plugin     start
builder    image      port       stats
buildx     images     ps         stop
commit     import     pull       swarm
compose    info       push       system
config     inspect    rename     tag
container  kill       restart    top
context    load       rm         trust
cp         login      rmi        unpause
create     logout     run        update
diff       logs       save       version
events     manifest   search     volume
exec       network    secret     wait
export     node       service  

8、配置鏡像加速

參考鏈接:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

[root@Docker01 ~]# mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xg3udbel.mirror.aliyuncs.com"]
}
EOF
[root@Docker01 ~]# systemctl daemon-reload
[root@Docker01 ~]# systemctl restart docker

9、查看鏡像加速是否配置成功

[root@Docker02 ~]# docker info | grep "Registry Mirrors" -A 1
 Registry Mirrors:
  https://xg3udbel.mirror.aliyuncs.com/

二、rpm包安裝(CentOS)

1、下載相應(yīng)的rpm包

rpm下載鏈接:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

可以利用它做本地yum倉庫,我這邊準(zhǔn)備了24.0.0.2的rpm壓縮包,下載鏈接放在文末

2、基于現(xiàn)成的rpm包進(jìn)行安裝

[root@Docker02 ~]# unzip koten-docker-24_0_2.zip && yum -y localinstall koten-docker-24_0_2/*.rpm

3、啟動docker服務(wù)

[root@Docker02 ~]# systemctl enable --now docker

4、開啟自動補全功能

安裝的rpm包里有就不用下載了

[root@Docker02 ~]# source /usr/share/bash-completion/bash_completion

5、配置鏡像加速

[root@Docker02 ~]# mkdir -p /etc/docker
[root@Docker02 ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xg3udbel.mirror.aliyuncs.com"]
}
EOF
[root@Docker02 ~]# systemctl daemon-reload
[root@Docker02 ~]# systemctl restart docker

6、查看鏡像加速是否配置成功

[root@Docker02 ~]# docker info | grep "Registry Mirrors" -A 1
 Registry Mirrors:
  https://xg3udbel.mirror.aliyuncs.com/

三、卸載docker環(huán)境

1、卸載軟件包

[root@Docker01 ~]# yum -y remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2、刪除數(shù)據(jù)目錄

[root@Docker01 ~]# rm -rf /var/lib/docker /var/lib/containerd

四、安裝指定的docker版本

1、添加docker-ce的軟件源

[root@Docker01 ~]# curl -s -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

2、查看軟件源中的docker版本

[root@Docker01 ~]# yum list docker-ce --showduplicates | sort -r

3、安裝指定的docker版本

[root@Docker01 ~]# yum -y install docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io 

4、配置鏡像加速(同上)

5、配置自動補全

[root@Docker01 ~]# yum -y install bash-completion
[root@Docker01 ~]# source /usr/share/bash-completion/bash_completion

6、啟動docker服務(wù)

[root@Docker01 ~]# systemctl enable --now docker

7、查看docker版本

[root@Docker01 ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.24
 API version:       1.41
 Go version:        go1.19.7
 Git commit:        297e128
 Built:             Tue Apr  4 18:22:57 2023
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.24
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.19.7
  Git commit:       5d6db84
  Built:            Tue Apr  4 18:21:02 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@Docker01 ~]# docker -v    #等同于docker --version
Docker version 20.10.24, build 297e128

五、Ubuntu安裝docker環(huán)境

1、卸載舊的docker版本

root@docker03:~# for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do  apt-get remove $pkg; done

2、切換國內(nèi)的軟件源

root@docker03:~# cat > /etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF

3、更新軟件源及證書

root@docker03:~# apt-get update
root@docker03:~# apt-get install ca-certificates curl gnupg

4、添加Docker的官方GPG密鑰

root@docker03:~# install -m 0755 -d /etc/apt/keyrings
root@docker03:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
root@docker03:~# chmod a+r /etc/apt/keyrings/docker.gpg

5、配置Ubuntu的docker軟件源

root@docker03:~# cat > /etc/apt/sources.list.d/docker.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu   focal stable
EOF

6、更新軟件源

root@docker03:~# apt-get update

7、安裝軟件源

root@docker03:~# apt-get -y install docker-ce docker-ce-cli containerd.io

8、配置鏡像加速(同上)

root@docker03:~# mkdir -p /etc/docker
root@docker03:~# tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://xg3udbel.mirror.aliyuncs.com"]
}
EOF
root@docker03:~# systemctl daemon-reload
root@docker03:~# systemctl restart docker

9、設(shè)置開機啟動docker服務(wù)

root@docker03:~# systemctl enable --now docker

10、驗證docker版本

root@docker03:~# docker -v
Docker version 24.0.2, build cb74dfc

六、使用deb安裝docker

deb下載鏈接:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

deb類似于CentOS的rpm包,不再演示。https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

七、Ubuntu卸載docker環(huán)境

1、卸載軟件包

root@docker03:~# apt-get -y purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2、刪除數(shù)據(jù)目錄

root@docker03:~# rm -rf /var/lib/docker /var/lib/containerd

八、二進(jìn)制安裝docker在Linux系統(tǒng)(CentOS,Ubuntu)

1、部署流程

安裝就下載解壓安裝包,卸載的話直接刪除軟件包即可

1、下載軟件包

root@docker03:~# wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz

2、解壓軟件包

root@docker03:~# mkdir -pv /koten/softwares
mkdir: created directory '/koten'
mkdir: created directory '/koten/softwares'
root@docker03:~# tar xf docker-20.10.24.tgz -C /koten/softwares/

3、創(chuàng)建符號鏈接到環(huán)境變量

root@docker03:~# ln -sv /koten/softwares/docker/* /usr/bin/
'/usr/bin/containerd' -> '/koten/softwares/docker/containerd'
'/usr/bin/containerd-shim' -> '/koten/softwares/docker/containerd-shim'
'/usr/bin/containerd-shim-runc-v2' -> '/koten/softwares/docker/containerd-shim-runc-v2'
'/usr/bin/ctr' -> '/koten/softwares/docker/ctr'
'/usr/bin/docker' -> '/koten/softwares/docker/docker'
'/usr/bin/dockerd' -> '/koten/softwares/docker/dockerd'
'/usr/bin/docker-init' -> '/koten/softwares/docker/docker-init'
'/usr/bin/docker-proxy' -> '/koten/softwares/docker/docker-proxy'
'/usr/bin/runc' -> '/koten/softwares/docker/runc'

4、啟動docker服務(wù)

root@docker03:~# nohup dockerd &>/koten/softwares/docker/docker.log &
[1] 35332

5、測試docker是否正常

root@docker03:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

2、二進(jìn)制部署腳本

通過運行此腳本,可以實現(xiàn)自動部署docker,可以通過簡單修改腳本實現(xiàn)自定義docker版本,注意在centos可以通過sh運行,但是ubuntu需要用bash或者路徑運行

[root@Docker00 ~]# mkdir download
[root@Docker00 ~]# mkdir /koten/softwares
[root@Docker01 download]# ls    #準(zhǔn)備自動補全、鏡像加速、開機自啟動腳本
daemon.json          docker               docker.service
[root@Docker00 ~]# cat install-docker.sh 
#!/bin/bash

DOCKER_VERSION=19.03.15    #可以自定義docker版本
FILENAME=docker-${DOCKER_VERSION}.tgz
URL=https://download.docker.com/linux/static/stable/x86_64
DOWNLOAD=./download
BASE_DIR=/koten/softwares

# 定義安裝函數(shù)
function InstallDocker(){
    # 判斷文件是否存在,若不存在則下載軟件包
    if [ ! -f ${DOWNLOAD}/${FILENAME} ]; then
       wget ${URL}/${FILENAME} -O ${DOWNLOAD}/${FILENAME}
    fi
    
    # 判斷解壓路徑是否存在
    if [ ! -d ${BASE_DIR} ]; then
      install -d ${BASE_DIR}
    fi
    
    # 解壓軟件包到指定目錄
    tar xf ${DOWNLOAD}/${FILENAME} -C ${BASE_DIR}
    
    # 創(chuàng)建軟連接
    ln -svf ${BASE_DIR}/docker/* /usr/bin/
    
    # 自動補全功能
    cp $DOWNLOAD/docker /usr/share/bash-completion/completions/docker
    source /usr/share/bash-completion/completions/docker
    
    # 配置鏡像加速
    install -d /etc/docker
    cp $DOWNLOAD/daemon.json /etc/docker/daemon.json
    
    # 開機自啟動腳本
    cp download/docker.service /usr/lib/systemd/system/docker.service
    systemctl daemon-reload
    systemctl enable --now docker
    docker version
    tput setaf 3
    echo "安裝成功!"
    tput setaf 2
}


# 卸載docker
function UninstallDocker(){
  # 停止docker服務(wù)
  systemctl disable --now docker

  # 卸載啟動腳本
  rm -f /usr/lib/systemd/system/docker.service

  # 清空程序目錄
  rm -rf ${BASE_DIR}/docker

  # 清空數(shù)據(jù)目錄
  rm -rf /var/lib/{docker,containerd} 

  # 清除符號鏈接
  rm -f /usr/bin/{containerd,containerd-shim,containerd-shim-runc-v2,ctr,docker,dockerd,docker-init,docker-proxy,runc}

  # 使得終端變粉色
  tput setaf 5
  echo "卸載成功!"
  tput setaf 7
}


# 程序的入口函數(shù)
function main(){
   # 判斷傳遞的參數(shù)
   case $1 in
     "install")
      InstallDocker
      ;;
     "remove")
      UninstallDocker
      ;;
     *)
       echo "Invalid parameter, Usage: $0 install|remove"
       ;;
   esac
}

# 向入口函數(shù)傳參
main $1 
[root@Docker00 ~]# sh deploy.sh install
[root@Docker00 ~]# docker -v
Docker version 19.03.15, build 99e3ed8

Docker鏡像管理基礎(chǔ)

一、查看鏡像

查看現(xiàn)有的鏡像列表

root@docker03:~# docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   20 months ago   13.3kB
root@docker03:~# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   20 months ago   13.3kB

只查看鏡像的ID

root@docker03:~# docker image ls -q
feb5d9fea6a5

二、給鏡像打標(biāo)簽

root@docker03:~# docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   20 months ago   13.3kB
root@docker03:~# docker image tag hello-world koten-hello-world:v1.1
root@docker03:~# docker image ls
REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
hello-world         latest    feb5d9fea6a5   20 months ago   13.3kB
koten-hello-world   v1.1      feb5d9fea6a5   20 months ago   13.3kB

三、本地鏡像遷移(導(dǎo)入導(dǎo)出)

導(dǎo)出鏡像到一個tar包的兩種方式

root@docker03:~# docker image save koten-hello-world:v1.1 > docker-koten-hello-world.tar.gz
root@docker03:~# docker image save --output docker-koten-hello-world2.tar.gz koten-hello-world:v1.1
root@docker03:~# ls
docker-koten-hello-world2.tar.gz
docker-koten-hello-world.tar.gz

從一個tar包導(dǎo)入鏡像的兩種方式

root@docker03:~# scp *.tar.gz 10.0.0.201:/root/

[root@Docker01 ~]# docker image load < docker-koten-hello-world.tar.gz
e07ee1baac5f: Loading layer  14.85kB/14.85kB
Loaded image: koten-hello-world:v1.1
[root@Docker01 ~]# docker image load -i docker-koten-hello-world2.tar.gz
Loaded image: koten-hello-world:v1.1
[root@Docker01 ~]# docker image ls
REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
koten-hello-world   v1.1      feb5d9fea6a5   20 months ago   13.3kB

鏡像批量導(dǎo)入

for i in `ls *.tar.gz`; do docker load -i $i ;done

鏡像批量導(dǎo)出

docker image save -o xxx.tar.gz  `docker images|awk 'NR>1{print $1":"$2}'`

忘記NR可以大于1了,老想著awk不能變量,還用了for循環(huán),唉,三劍客還得練?。。?/p>

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

四、下載鏡像

下載一個nginx版本為1.14.2的鏡像

root@docker03:~# docker pull nginx:1.14.2
1.14.2: Pulling from library/nginx
27833a3ba0a5: Pull complete 
0f23e58bd0b7: Pull complete 
8ca774778e85: Pull complete 
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14.2
docker.io/library/nginx:1.14.2

下載一個mysql版本號為8.0的鏡像

root@docker03:~# docker pull mysql:8.0 

下載一個tomcat9的鏡像

root@docker03:~# docker pull tomcat:9

也可以去第三方鏡像倉庫下載鏡像

root@docker03:~# docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.5

五、刪除鏡像

刪除指定的鏡像的名稱

root@docker03:~# docker image rm hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f

基于鏡像ID強制刪除鏡像,盡管該鏡像被其他鏡像或容器引用

root@docker03:~# docker image rm -f feb5d9fea6a5
Untagged: koten-hello-world:v1.1
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412

刪除本地的所有鏡像

root@docker03:~# docker image rm -f `docker images -q`
Untagged: nginx:1.14.2
Untagged: nginx@sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Deleted: sha256:295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369
Deleted: sha256:19606512dfe192788a55d7c1efb9ec02041b4e318587632f755c5112f927e0e3
Deleted: sha256:0b83495b3ad3db8663870c3babeba503a35740537a5e25acdf61ce6a8bdad06f
Deleted: sha256:5dacd731af1b0386ead06c8b1feff9f65d9e0bdfec032d2cd0bc03690698feda
root@docker03:~# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

可以把刪除本地的所有鏡像這種常用的命令寫入Xshell會話的快速命令

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

如果勾選追加CR,點擊后就會輸入命令會自動回車,如果不勾選就只會輸入命令停留,所以新建危險的快速命令不推薦勾選?

?【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

添加后快速命令欄會顯示,使用時記得命令行中不要有其他命令,因為快速命令是在當(dāng)前命令后面追加并不是替換

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

點擊以下即可自動運行

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

六、自定義鏡像

自己做個鏡像出來,后面文章再寫?。?/p>

容器管理常用命令

一、查看容器

查看現(xiàn)有的容器列表

root@docker03:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

查看所有容器運行的所有狀態(tài)

root@docker03:~# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
a027a219bddc   hello-world   "/hello"   31 seconds ago   Exited (0) 30 seconds ago             pensive_villani
6351a82d0715   hello-world   "/hello"   24 minutes ago   Exited (0) 24 minutes ago             wizardly_bardeen

查看最新的容器id

root@docker03:~# docker ps -ql
6351a82d0715

查看最新的一個容器創(chuàng)建的信息,無論該容器處于什么狀態(tài)均可查看

root@docker03:~# docker ps -l
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
a027a219bddc   hello-world   "/hello"   44 seconds ago   Exited (0) 43 seconds ago             pensive_villani

二、運行容器

將容器放在前臺運行

[root@Docker01 ~]# docker run nginx:1.14.2
[root@Docker01 ~]# docker container inspect `docker container ps -lq`    #查看容器IP地址為172.17.0.3
[root@Docker01 ~]# curl 172.17.0.3
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    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 >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

[root@Docker01 ~]# docker run nginx:1.14.2
172.17.0.1 - - [06/Jun/2023:13:54:12 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
......

將容器放在后臺運行

[root@Docker01 ~]# docker run -d nginx:1.14.2

交互式運行

#-i表示交互式,有了-i才不會閃退,-t表示分配終端,有了-t才是橫著顯示命令行
[root@Docker01 ~]# docker container run -i -t centos:7
Unable to find image 'centos:7' locally
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7
[root@e7ea9bc74cdd /]# ls /
anaconda-post.log  etc   lib64  opt   run   sys  var
bin                home  media  proc  sbin  tmp
dev                lib   mnt    root  srv   usr
[root@e7ea9bc74cdd /]# pwd 
/
[root@e7ea9bc74cdd /]# exit
exit
[root@Docker01 ~]# 

給容器起名字

[root@Docker01 ~]# docker container run -itd --name linux centos:7
1c9b80bcb071c2ad342ac9c6744c6b03a688870fd0561608e4cd269fcfe8fa3c
[root@Docker01 ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
1c9b80bcb071   centos:7   "/bin/bash"   36 seconds ago   Up 35 seconds             linux

-e表示向容器傳遞環(huán)境變量

[root@Docker01 ~]# docker run -itd -e NAME=koten -e HOBBY=docker --name linux01 centos:7 
b04b31e444a4e14f05722a6151f0421fa2740f788435adea9adc05738c3f3ed
[root@Docker01 ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
b04b31e444a4   centos:7   "/bin/bash"   45 seconds ago   Up 44 seconds             linux01
1c9b80bcb071   centos:7   "/bin/bash"   2 minutes ago    Up 2 minutes              linux

?可以不進(jìn)入容器,也可以在外面執(zhí)行,類似于ssh執(zhí)行命令,也類似于不進(jìn)入mysql,在mysql外面執(zhí)行命令

[root@Docker01 ~]# docker run centos:7 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=98c175050f7b
HOME=/root

將nginx容器的80端口通過10.0.0.201網(wǎng)卡暴露在外面,底層是iptables做的地址映射

[root@Docker01 ~]# docker run -d -p 10.0.0.201:80:80 nginx:1.14.2
2f6a69025cf3abe92232b4da3b893dd5b9e4a3f51ad9708be61cd8572fd6163b

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

三、連接到指定的容器

[root@Docker01 ~]# docker container exec -it linux bash
[root@1c9b80bcb071 /]# exit
exit
[root@Docker01 ~]# 

四、刪除所有的容器

與上面刪除所有的鏡像一樣,也可以加入快速命令

docker container rm -f `docker container ps -qa`

五、查看容器的IP地址,查看IPAddress字段即可

# docker container inspect 容器名稱|容器的ID
[root@Docker01 ~]# docker container inspect `docker container ps -lq`
......
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "830197d273f10fced77e650b41b2159ec7bebcc49d2acaa8c885b48c30e76434",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/830197d273f1",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "a6b3bb8e725ed536a98b009e36a25a2718b17dc17d1882170cbceea56bcb373c",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "b5012c44124488b1cb84aee6927b4a040e8a6db82b09096991518bec79c74cf9",
                    "EndpointID": "a6b3bb8e725ed536a98b009e36a25a2718b17dc17d1882170cbceea56bcb373c",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

六、案例:使用docker部署ES節(jié)點

參考連接:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html

下載鏡像

docker run -d --name koten-es7 -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.5

啟動ES服務(wù)?

[root@Docker01 ~]# docker pull docker.elastic.co/elascsearch/elasticsearch:7.17.5

擴(kuò)展

一、搭建私有的yum倉庫,實現(xiàn)docker的私有倉庫部署,要求可以指定版本

可以參考我之前寫的文章:【運維知識進(jìn)階篇】一鍵部署yum本地倉庫

真正的yum倉庫有兩點要求,一個是可以安裝任意版本,一個是可以解決依賴問題。

我們可以通過運行一個腳本自動部署本地yum倉庫,但是考慮到是部署docker的yum倉庫,所以我們需要增加docker的rpm包在我們的倉庫,其他的軟件可以不需要。

1、配置虛擬機

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

2、下載docker的rpm包到/Packages目錄,還有一些依賴包和docker補全的包

[root@Docker00 ~]# mkdir /Packages/
[root@Docker00 ~]# cd /Packages/
[root@Docker00 Packages]# wget -r -l 1 -nd -nc -np -A rpm https://download.docker.com/linux/centos/7/x86_64/stable/Packages/    #下載該網(wǎng)址下的所有rpm包
[root@Docker00 test]# ls /Packages/
......
docker-scan-plugin-0.21.0-3.el7.x86_64.rpm
docker-scan-plugin-0.23.0-1.el7.x86_64.rpm
docker-scan-plugin-0.23.0-3.el7.x86_64.rpm
docker-scan-plugin-0.7.0-3.el7.x86_64.rpm
docker-scan-plugin-0.8.0-3.el7.x86_64.rpm
docker-scan-plugin-0.9.0-3.el7.x86_64.rpm
[root@Docker00 ~]# ls /Packages|wc -l
259

3、編寫腳本并執(zhí)行

[root@Docker00 ~]# cat deploy_docker.sh 
#!/bin/bash
 
# 安裝epel源
yum -y install epel-release
 
# 安裝nginx
yum -y install nginx
 
# 創(chuàng)建目錄,準(zhǔn)備Nginx默認(rèn)站點
mkdir /share
chown -R nginx:nginx /share
 
# 刪除Nginx默認(rèn)站點,并在其目錄中創(chuàng)建yum.conf文件進(jìn)行yum倉庫目錄索引
rm /etc/nginx/conf.d/default.conf
cat > /etc/nginx/conf.d/yum.conf <<EOF
server {
    listen 80 default_server;
    root /share;
    index index.html index.htm;
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
}
EOF
 
# 準(zhǔn)備yum倉庫存儲目錄
mkdir /share/packages
chown -R nginx:nginx /share/packages
 
# 安裝createrepo
yum -y install createrepo 
 
# 復(fù)制rpm包到本地yum倉庫
cp -a /Packages/* /share/packages/
 
# 構(gòu)建yum倉庫
createrepo /share/packages/
 
# 啟動nginx服務(wù),并將服務(wù)加入開機啟動項中
systemctl start nginx
systemctl enable nginx

[root@Docker00 ~]# sh deploy_docker.sh 
......
Spawning worker 0 with 259 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

4、瀏覽器訪問,可以看到我們的rpm包

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

5、客戶端配置yum源,使用本地yum倉庫測試安裝指定版本

[root@Docker02 ~]# cat /etc/yum.repos.d/docker_local.repo
[local]
name=docker_local
baseurl=http://10.0.0.200/packages
enabled=1
[root@Docker04 ~]#  yum -y install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io 
......

Dependencies Resolved

=====================================================
 Package           Arch   Version        Repository
                                                Size
=====================================================
Installing:
 containerd.io     x86_64 1.6.21-3.1.el7 local  34 M
 docker-ce         x86_64 3:24.0.0-1.el7 local  24 M
 docker-ce-cli     x86_64 1:24.0.0-1.el7 local  13 M
Installing for dependencies:
 docker-buildx-plugin
                   x86_64 0.10.5-1.el7   local  12 M
 docker-ce-rootless-extras
                   x86_64 24.0.2-1.el7   local 9.1 M
 docker-compose-plugin
                   x86_64 2.18.1-1.el7   local  12 M

Transaction Summary
=====================================================
......    

Complete!

二、在windows上安裝docker環(huán)境

其實windows沒有辦法用docker,能用是因為安裝了Linux內(nèi)核,注意安裝環(huán)境和后續(xù)使用都需要開啟Hyper-V,在控制面板,程序和功能,啟用或關(guān)閉windows功能。開啟后需要重啟windows電腦

注意開啟它可能會影響VMware的正常使用,所以用VM虛擬機的使用記得關(guān)閉它哈,docker在windows上用的少,可能打鏡像包會用到,主要還是在linux上用,打鏡像包可以把代碼傳到自己虛擬機上,在虛擬機上再拉下來,這樣速度也很快

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

之前鏡像加速器的網(wǎng)址有在windows安裝docker的方法,可以作為參考
【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

打開這個軟件,修改安裝路徑,一路next即可?

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s??

【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境),運維知識分享,# 大神運維知識,運維,docker,容器,ubuntu,centos,鏡像,k8s

也可以直接在docker官網(wǎng)找到docker的windows版本下載!

https://www.docker.com/


Docker-24.0.2-rpm包下載鏈接:https://pan.baidu.com/s/1qAzlLiSQW59Hhsq5GUaW-A?pwd=2uox?

我是koten,10年運維經(jīng)驗,持續(xù)分享運維干貨,感謝大家的閱讀和關(guān)注!文章來源地址http://www.zghlxwxcb.cn/news/detail-801011.html

到了這里,關(guān)于【運維知識大神篇】運維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包