整理记录 docker 基本操作使用

前言

因为每个人的前置知识不一样,所以本文不适合其他人作为学习参考。就是自己做个记录,以防忘记。自己电脑一直用的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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!