docker服務部署、遷移與備份、dockerfile、私有倉庫
阿新 • • 發佈:2022-05-30
今日內容概要
- 服務部署
- 遷移與備份
- dockerfile
- 私有倉庫
內容詳細
1、服務部署
# 裝 mysql redis ---》原始碼編譯安裝--》啟 動 # 有了docker後,容器作業系統+軟體---》拉取一個redis映象---》執行起來---》容器裡就有 redis服務了---》做好埠對映---》就相當於在宿主機上裝了個虛擬機器,虛擬機器裡裝了個redis # redis的部署 -如果本地沒有這個映象---》執行映象---》會先拉取--》然後在執行 docker pull redis -容器中的redis執行時候,有配置檔案,用我寫的配置檔案,-v 對映 (宿主機寫個配置檔案,讓容器中的redis用) -redis執行產生資料--》放在容器中--》容器刪除資料就沒了---》資料對映到宿主機-->以後刪了容器,資料還在---》只要再啟動起一個容器---》做好目錄對映,資料自然都在了 ### 這個,資料目錄沒有映射出來,配置檔案使用容器預設的---》但是這種不用 docker run -di --name=myredis -p 6379:6379 redis ##### 操作流程 # 第一步:啟動容器,名字叫 redis_6379,配置檔案自己寫,資料目錄映射出來,兩個目錄對映:配置,資料目錄,執行容器的時候,執行 redis-server /etc/redis/redis.conf 配置檔案 docker run -id -p 6379:6379 --name redis_6379 -v /root/s20/redis.conf:/etc/redis/redis.conf -v /root/s20/data:/data redis redis-server /etc/redis/redis.conf docker logs 容器名字 # 檢視容器日誌 # 第二步:遠端連線redis -存入資料 bgsave # 第三步:刪除容器 docker rm id號 # 第四:再啟動reddis docker run -id -p 6379:6379 --name redis_6379 -v /root/s20/redis.conf:/etc/redis/redis.conf -v /root/s20/data:/data redis redis-server /etc/redis/redis.conf ######### mysql 部署 docker pull mysql:5.7 # -e 是環境變數---》容器執行時傳入,看文件才知道有哪些引數 # 使用了預設配置,把資料目錄映射出來 # root使用者預設不允許遠端登陸 docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # 進去授權 允許遠端登陸 grant all privileges on *.* to 'root'@'%' identified by 'Lqz12345?'; # 配置檔案用宿主機的,資料目錄映射出來到宿主機 # mysql的配置檔案 自行建立配置檔案 my.cnf [mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expire_logs_days=7 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections=1000 # 執行容器 docker run -di -v /root/s20/mysql/data/:/var/lib/mysql -v /root/s20/mysql/conf.d:/etc/mysql/conf.d -v /root/s20/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # nginx部署 docker pull nginx docker run -di --name=mynginx -p 80:80 nginx
2、遷移與備份
# python容器--》裝了django 容器反打包成映象
# 把容器做成映象
docker commit 容器名字 映象名字
docker commit django django2.2.2
# 映象打包成壓縮包
docker save -o django2.2.2.tar django2.2.2
# cp給別人---》釋放成映象---》執行起容器
docker load -i django2.2.2.tar
3、dockerfile 應用
# 把容器打包成映象---》壓成壓縮檔案--》複製給別人---》壓縮包很大--》速度慢 # 特別輕量級的方式,可以構建出映象來,把一個特別小的檔案複製給別人,別人一執行就有了映象 # 它就是一個固定的 Dockerfile 檔案,裡面寫了一些命令 # 通過 docker build -t='django2.0' . 把這個檔案構建成映象 ### dockerfile的命令 FROM image_name:tag # 定義了使用哪個基礎映象啟動構建流程 MAINTAINER user_name # 宣告映象的建立者 ENV key value # 設定環境變數 (可以寫多條) RUN command # 是Dockerfile的核心部分(可以寫多條) ADD source_dir/file dest_dir/file # 將宿主機的檔案複製到容器內,如果是一個壓縮檔案,將會在複製後自動解壓 source_dir/file dest_dir/file # 和ADD相似,但是如果有壓縮檔案並不能解壓 WORKDIR path_dir # 設定工作目錄 # Dockerfile演示 FROM python:3.8.13 MAINTAINER lqz ENV pwd 123 RUN pip install django==2.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple RUN pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple RUN mkdir lqz ADD ./redis.conf /home/redis.conf WORKDIR /home # 工作路徑是哪 docker build -t='django2.2.2' . # 建立映象
4、私有倉庫
# docker pull 都是從hub.docker.com 拉的
# 我們公司自己做的映象,在上面沒有---(我可以傳上去,不安全)
# 自己搭建私有倉庫
https://www.cnblogs.com/liuqingzheng/p/16315254.html