基本概念
Docker 类似一个虚拟机(实际有差别,虚拟机需要翻译,docker只是环境隔离,性能上会比虚拟机好)。
在docker中有几个基本的概念。
1、镜像:类似于平时使用的iso或者image镜像文件。
2、容器:容器其实就会类似于虚拟机
3、tar文件:类似于vmdk文件,可以直接打个包在别的地方直接run运行。
4、Dockerfile。docker 的一些配置
5、仓库:存放有很多已经打包好的镜像,MySQL镜像、ngnix镜像等。
常用的操作命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| docker search mysql docker pull mysql
docker images
docker rmi <imagesID>
docker run -d 3307:3306 mysql
docker ps
docker ps -a
docker exec -it id bash
docker stop <容器ID> docker restart <容器ID>
docker rm -f 实例ID
docker commit 实例ID 新的名字
docker load < test.tar docker load -i test.tar
docker save repository:1.0 > /root/test.tar docker save ab2f358b8612 -o /root/my.tar
docker info
docker network ls
docker inspect containerid
|
制作docker镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 1. 安装一个minimal版本的操作系统 # 2. 安装依赖的包 # 3. 将服务器打包成一个docker镜像 tar -cvpf /tmp/centos8.2.tar --directory=/ --exclude=/proc --exclude=/dev --exclude=/run --exclude=/tmp --exclude=/root --exclude=/home --exclude=/var/crash /
# 将镜像tar包导入到docker images镜像中 docker import centos8.2.tar
# 刚导入的镜像仓库和标签显示none,可以打印 docker tag 'IMAGE ID' 仓库地址:标签
# 上传镜像 docker push repository:tag
|
常见问题
在docker容器内出现命令没有的情况
1.执行命令apt-get update
。
更新/etc/apt/sources.list
和/etc/apt/sources.list.d
目录下的源索引,更新软件包,
2、安装对应的软件包。
例如vim没有安装命令找不到,可以直接执行命令安装apt-get install vi
。
3、宿主机
检查/etc/docker/daemon.json文件dns是否正常。
1 2 3 4
| { "registry-mirrors":["https:adada.com"], "dns":["114.114.114.114", "8.8.8.8"] }
|