centos安裝docker及常用命令


//1.刪除舊版本docker
sudo yum remove docker

//2.安裝必須的依賴
sudo yum install -y yum-utils  device-mapper-persistent-data lvm2

//添加docker-ce的源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新 yum 緩存

 # yum makecache fast



//3.安裝docker-ce
sudo yum install docker-ce docker-ce-cli containerd.io

//運行docker
systemctl start docker

//查看狀態
systemctl status docker
//修改docker下載包的源
vi /etc/docker/daemon.json

{
  "registry-mirrors":["http://registry.docker-cn.com"]
}

//保存后重啟docker
systemctl daemon-reload
systemctl restart docker

2.常用命令

//復制docker容器內的數據
docker cp  containerId:/var/jenkins_home  /home/jenkins/data

//查看容器參數  可以看mounts(看掛載的volumes)  NetworkSettings(port、Networks) 
docker inspect  containerId
//查詢鏡像
docker search [name]

//拉取鏡像
docker pull [name]

//查詢所有鏡像
docker images

//刪除鏡像
docker rmi [name]

//修改鏡像名
docker tag docker.io/node node


//啟動
# 運行並進入交互模式
docker run -it --name myjava java bash 
# 在后台運行
docker run -d --name myjava java

//端口映射  -p
docker run -it --name myjava -p 9000:8085 -p 9000:8086 java bash

//目錄映射
docker run -it --name myjava -v /home/project:/soft --privileged docker.io/node bash
https://blog.csdn.net/docerce/article/details/79265858
-v 與--mount類似但是有區別
//進入后台運行的容器 docker exec -it name bash //自動重啟 docker run --restart=always -it --name myjava -p 9000:8085 -p 9000:8086 java bash //暫停容器 docker pause node //停止暫停容器 docker unpause node //停止容器 docker stop node //啟動容器 docker start -i node //查看容器 docker ps -a //導入鏡像 docker load < /home/node.tar.gz //導出鏡像 docker save > /home/node.tar.gz
//docker網段相關

//創建網段
docker network create net1

//查看網段信息
docker network inspect net1

//刪除網段信息
docker network rm net1
//查詢鏡像
https://blog.csdn.net/wos1002/article/details/78795459
//找出tag為<none>的images -q只返回imageID docker images -f "dangling=true" //根據repository名稱和tag模糊過濾,我驗證時,如果repository有/或小數點符號,通過*是無法匹配的 docker images --filter=reference='busy*:*libc'

3.dockerfile

//https://docs.docker.com/engine/reference/builder/#usage

# build stage
FROM node:10 as build-stage

LABEL maintainer=brian@toimc.com

# 創建一個工作目錄
WORKDIR /app

COPY . .

RUN yarn install --registry=https://registry.npm.taobao.org

RUN npm run build

# production stage
FROM nginx:stable-alpine as production-stage

COPY --from=build-stage /app/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

docker build -t web-font:v1 .
docker docker run -it web-font:v1 bash

4.docker 基礎概念

Docker 中有三個核心概念:Image、Container、Repository。


Image: 有領“好人卡”傾向的廣大程序猿一定對 鏡像 的概念不會陌生。但和 windows 的那種 iso 鏡像相比,Docker 中的鏡像是分層的,
     可復用的,而非簡單的一堆文件迭在一起(類似於一個壓縮包的源碼和一個 git 倉庫的區別)。 Container: 容器的存在離不開鏡像的支持,他是鏡像運行時的一個載體(類似於實例和類的關系)。依托 Docker 的虛擬化技術,
       給容器創建了獨立的端口、進程、文件等“空間”,Container 就是一個與宿機隔離 “容器”。容器可宿主機之間可以進行 port、volumes、network 等的通信。 Repository: Docker 的倉庫和 git 的倉庫比較相似,擁有倉庫名、tag。在本地構建完鏡像之后,即可通過倉庫進行鏡像的分發。
        常用的 Docker hub 有 https:
//hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。

 

5.nginx運行

# 復制文件,將a.js復制到10.10.1.1的home目錄下,root是用戶名
scp ./a.js root@10.10.1.1:~/a.js
# 從遠程復制文件到本地,也就是上面的命令反過來
scp root@10.10.1.1:~/b.js ./b.js
# 復制文件夾到遠程
scp -r ./demo root@10.10.1.1:~/demo


scp ~/Desktop/index.html  penguin:~/docker-demo/nginx-html

docker run -d --name nginx_p -p 8866:80 -v ~/docker-demo/nginx-html:/usr/share/nginx/html/  nginx

//nginx 默認配置在容器的 /etc/nginx/conf.d/defualt.conf
//配置里默認的根index.html /usr/share/nginx/html/index.html

 參考:

前端領域的 Docker 與 Kubernetes

https://juejin.im/post/5dddd15b6fb9a071576dbd7a#heading-4

使用 docker-compose 構建你的項目

https://juejin.im/post/5e10163ce51d45410706539f#comment

Docker 部署 vue 項目

https://juejin.im/post/5cce4b1cf265da0373719819#heading-21

vue-cli3 項目從搭建優化到docker部署

https://juejin.im/post/5c4a6fcd518825469414e062#heading-28


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM