整理记录 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 协议》,转载必须注明作者和本文链接
推荐文章: