docker 筆記

摘自bilibili視頻,感謝黑馬程序員老師精彩講授

  1. docker 安裝
    參考文檔:https://docs.docker.com/engine/install/centos/
  2. 先卸載

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

  1. 設置資源庫

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

  1. Install Docker Engine
    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

  2. sudo systemctl start docker

  1. 配置鏡像加速器

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

docker images --help

  1. 鏡像常用命令

docker save --help
docker load --help
docker images --help
docker rmi --help
docker pull --help
docker push --help

1.把鏡像保存到指定鏡像中
例子: docker save -o nginx.tar nginx:latest

2.刪除鏡像
docker rmi nginx:latest

  1. 加載鏡像
    docker load -i nginx.tar

練習:https://hub.docker.com/_/redis

docker pull redis

docker images

docker save -o redis.tar redis:latest
docker rmi redis:latest
docker load -i redis.tar

  1. 容器相關命令

docker run --name mn -p 80:80 -d nginx

docker ps
docker ps -a

docker start mn
docker logs mn
持續(xù)查看日志
docker logs -f
進入容器
docker exec -it mn bash
sed -i 's/a/b/g' index.html
停掉mn容器
docker stop mn
docker rm --help

強制刪除運行中的容器
docker rm -f mn

  1. docker 數據卷

docker volume COMMAND

docker volume --help

docker volume create html
docker volume ls

查看數據卷存在哪里
docker volume inspect html

移除所有未使用的卷
docker volume prune

刪除某個卷
docker volume rm html

掛載邏輯卷

docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx

查看數據卷掛載的真實目錄
docker inspect html

掛載目錄:
docker run --name my-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

docker load -i mysql.tar

docker run --name mm -v /tmp/mysql/data:/var/lib/mysql -v /tmp/mysql/conf/ycon.conf:/etc/mysql/conf.d/ycon.conf

image.png
image.png

20220722 進一步研究

https://www.bilibili.com/video/BV1wQ4y1Y7SE?p=17

  1. Docker 引擎安裝 (運行容器的平臺)

https://docs.docker.com/engine/install/centos/

docker version
docker info

  1. 結構

鏡像 : 軟件

容器: 隔離的操作系統

鏡像運行產生容器
倉庫:
hub.docker.com

  1. 鏡像加速

登錄阿里云網站
容器鏡像服務->鏡像工具->鏡像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xyz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

  1. 檢測加速配置是否成功

docker info

  1. 啟動mysql

docker pull mysql:5.7

docker run --name mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /tmp/mysql/conf:/etc/mysql/conf.d -v /tmp/mysql/data:/var/lib/mysql -d mysql:5.7
// 看日志
docker logs -f mysql57

  1. docker 重啟之后要自動重啟 mysql57
    systemctl restart docker
    docker ps
    加上參數:
    --restart=always

(base) [root@localhost ~]# docker run --name mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /tmp/mysql/conf:/etc/mysql/conf.d -v /tmp/mysql/data:/var/lib/mysql --restart=always -d mysql:5.7

  1. 持久化數據到宿主機

-v 參數加上后 , 即使容器被刪了再重啟數據不會丟

  1. 刪除所有容器

docker rm -f $(docker ps -qa)

  1. 在mysql導出sql文件,利于跨機器數據遷移(用navicate更直接)
    導出所有:
    docker exec mysql57 sh -c 'exec mysqldump -u root -p"$MYSQL_ROOT_PASSWORD" --all-databases'>/root/all-databases2.sql

導出單個表:
docker exec mysql57 sh -c 'exec mysqldump --databases learn -u root -p"MYSQL_ROOT_PASSWORD"'>/root/learn.sql 導出結構不要數據 docker exec mysql57 sh -c 'exec mysqldump --no-data --databases learn -u root -p"MYSQL_ROOT_PASSWORD"'>/root/learn.sql

  1. 用docker 安裝 redis
    docker pull redis:latest

docker exec 容器ID sh -c 'exec redis-cli'

docker run --name mr -p 6378:6379 --restart=always -d redis
redis 內存數據持久化

  1. aof:redis服務器將所有redis客戶端的寫操作以命令方式記錄到日志文件中

  2. redb持久化: 快照某一時間數據

  3. Redis持久化
    start with persistent storage
    $ docker run --name some-redis -p 6379:6379 -v /tmp/redisdata:/data --restart=always -d redis redis-server --save 60 1 --loglevel warning

AOF
$ docker run --name some-redis -p 6379:6379 -v /tmp/redisdata:/data --restart=always -d redis redis-server --appendonly yes

  1. 自定義配置文件啟動redis

如何獲???可下載對應版本 copy到宿主機某個目錄如/tmp/redis/conf
運行容器用宿主機的配置文件
docker run --name some-redis -p 6379:6379 -v /tmp/redis/conf:/data --restart=always -d redis redis-server /data/redis.conf

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 安裝 yum -y install docker-iowget -qO- https://get.docker.c...
    Martin_阿錘閱讀 274評論 0 0
  • docker命令: Docker的三大核心概念:鏡像、容器、倉庫 鏡像:類似虛擬機的鏡像、用俗話說就是安裝文件。 ...
    balabala19閱讀 315評論 0 0
  • 零、本文綱要 一、認識Docker 二、Docker架構 三、安裝Docker 四、啟用Docker 五、Dock...
    石頭耳東閱讀 890評論 0 14
  • 參加工作以來,經歷的第二家公司,用心的記錄用到的技術。 Docker是一個改進的容器技術。具體的“改進”體現在,D...
    草中人閱讀 289評論 0 0
  • 第一章節(jié): DOCKER的安裝與使用 1、Docker 要求 CentOS 系統的內核版本高于 3.10 ,查看本...
    可笑可樂閱讀 390評論 0 1

友情鏈接更多精彩內容