整理記錄 docker 基本操作使用

Euan發表於2020-04-09

前言

因為每個人的前置知識不一樣,所以本文不適合其他人作為學習參考。就是自己做個記錄,以防忘記。自己電腦一直用的docker環境,但平時也沒怎麼折騰,今天整理一下。

如何編譯一個映象?簡單的寫個hello.c檔案,編譯成可執行的二進位制檔案
    #include <stdio.h>
    int main()
    {
        printf("hello docker\n");
    }
編譯可執行檔案
gcc -static hello.c -o hello
Dockrefile裡的內容
    FROM scratch
    ADD hello /
    CMD ["/hello"]
編譯映象(注意後面有一個 .
docker build -t euan/ubuntu-hello .
把容器提交成一個映象:docker commit 當前執行的容器名 新映象名:版本號
docker container ls -a
docker commit b65e103367bf ubuntu-vim
push 映象到自己的docker hub上執行
docker push test/ubuntu-hello:latest 

發現沒有許可權

  The push refers to repository [docker.io/test/ubuntu-hello]0a5c675bd2fb: Preparing
    denied: requested access to the resource is denied

    查了下原因發現映象名字要和自己的docker hub帳號名一樣
    執行命令改名字
docker tag 7a07b8c2aa07 euan/ubuntu-hello:latest
再次push
    docker push euan/ubuntu-hello
    The push refers to repository [docker.io/euan/ubuntu-hello]
    0a5c675bd2fb: Pushed
    latest: digest: sha256:b65468652d4d858aa984ac523e35e3b4a8b0eca0e6b5b956b080f5c500b206b1 size: 527
    ubuntu@VM-140-90-ubuntu:~/hello-docker$

二、搭建自己的docker hub

docker run -d -p 5000:5000 --restart always --name registry registry:2
推送映象到自己的私有倉
docker push  自己伺服器ip地址:5000/php-fpm-7.2
The push refers to repository [自己伺服器ip地址/php-fpm-7.2]
Get https://自己伺服器ip地址/v2/: Service Unavailable
互動式操作映象。對於很多操作,我們需要進入正在執行的容器裡進行一些操作。可以執行以下命令
docker run -it 2434bbb56338 /bin/bash  或
docker exec -it 2434bbb56338 bash   進入某個容器
刪除所有停止執行的容器
sudo docker rm $(sudo docker ps -a -q)
### 三、docker使用  

1, 配置:docker的守護進行配置檔案 /etc/docker/daemon.json       
    新增如下內容:    
  {  "insecure-registries" : [    "自己伺服器ip地址:5000"  ]} 
因為docker映象會用到本地伺服器的映象庫,不支援https請求,所以需要進行以上配置
2.  配置映象包
    編輯配置 .env 
    WORK_DIR= 程式碼目錄
    MYSQL_DATA_DIR=~/data/mysql       
    REDIS_DATA_DIR=~/data/redis
    MC_DATA_DIR=~/data/mc
    NGINX_LOG_DIR=~/data/nginx/log
配置nginx openresty 
服務解析執行docker-compose up -d 
啟動docker服務繫結本地host,
127.0.0.1 test.com127.0.0.1 


3 更新映象包
-   更新docker配置檔案
-   執行docker-compose build  重建docker容器
-   執行docker-compose up -d  啟動docker容器

4.  常用docker命令
-   docker ps  檢視所有容器
-   docker exec -it 76e79889f101 bash   進入某個容器
-   docker restart 76e79889f101  重啟某個容器
-   docker-compose restart 重啟所有容器
常見問題
Connection failed: SQLSTATE[HY000] [2002] Connection refused
host 127.0.0.1改成localhost
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章