一、在ubuntu系统安装
1. 脚本一键安装
curl -sSL https://get.daocloud.io/docker | sh
2. 使用清华镜像源安装
二、DockerHub镜像配置
在 /etc/docker/daemon.json(没有则新建)文件中写入
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/"]
}
重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
上述网址为中科大镜像源,也可加入网易镜像源https://hub-mirror.c.163.com/
使用sudo docker info
查看镜像源是否配置成功
三、docker用户组
安装完成后,如果不加sudo直接使用docker命令会报错
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied
把当前用户添加到docker用户组即可
sudo usermod -aG docker <用户名>
sudo service docker restart
newgrp - docker
四、docker构成部分及关系
docker主要涉及5个部分,仓库、镜像、Dockerfile、tar文件以及容器。
系统或者软件需要以容器的形式运行,而镜像则是系统或者软件的模板,可以用镜像生成具体的容器,可以类比面向对象编程中的类与对象的关系,一个镜像可以生成多个容器。
仓库中存放了大量构建好的各种系统软件的镜像文件,方便用户下载。
除了从仓库直接拉取镜像,还可以利用Dockerfile文件指导指导镜像的构建方式。另外,docker还可以使用save或者load指令把镜像保存为tar文件或者从tar文件加载生成一个镜像,十分方便移植。
五、docker常用命令
docker pull <系统或软件镜像名称:版本号>
从仓库拉取目标镜像,省略版本号表示最新版本
docker images
查看本地下载的镜像
docker rmi <系统或软件镜像名称:版本号>/<镜像ID>
删除镜像
docker stop <容器名称>/<容器ID>
停止正在运行的容器
docker start <容器名称>/<容器ID>
启动停止的容器
docker restart <容器名称>/<容器ID>
重启容器
docker run <镜像名称:版本号>/<镜像ID>
运行镜像(成为了容器)
docker run --name <指定的容器名称> <镜像名称:版本号>/<镜像ID>
运行镜像并指定名称
docker run -d -p <外部映射端口:内部端口> <镜像名称:版本号>/<镜像ID>
-d代表后台运行 -p指定网络端口的映射方式 比如 -p 8080:80
可以通过docker宿主机的8080端口访问到容器中的80端口
docker run -d -v <外部映射文件夹:内部文件夹> <镜像名称:版本号>/<镜像ID>
-v 指定内外文件夹的映射,相当于把内部文件放到外部,方便直接编辑
docker run -it <镜像名称:版本号>/<镜像ID> bash
run -it 表示运行镜像并打开可以交互的终端,bash表示指定的终端为bash,在交互终端输入exit即可退出
docker run -itd <镜像名称:版本号>/<镜像ID> bash
打开交互式终端,并在后台运行
docker attach <容器名称>/<容器ID>
进入后台运行的容器,如果能用exit命令退出,容器会停止
docker exec -it <容器名称>/<容器ID> bash
以交互终端的方式进入后台运行的容器,exit命令退出交互终端,容器也不会停止
docker ps
查看正在运行的容器
docker rm -f <容器名称>/<容器ID>
删除指定容器
docker container prune
删除所有未运行的容器
docker cp <容器名称:/docker/path> </out/path>
把容器内的文件复制到宿主机
docker cp </out/path> <容器名称:/docker/path>
把宿主机的文件复制到容器内
对于运行或停止状态的容器,都可以运行docker cp命令
docker commit <容器名称>/<容器ID> <指定的镜像名称>
把容器保存为镜像
docker build -t <指定镜像名称> <Dockerfile所在的文件夹>
docker save <镜像名称:版本号>/<镜像ID> > <xxx.tar>
把镜像文件保存为tar文件注意有个大于号
docker load < <xxx.tar>
把tar文件保存为镜像文件,同样注意有个小于号
参考视频: 【docker入门】10分钟,快速学会docker @free-coder