Docker学习笔记一
1.安装docker
操作系统:ubuntu 18.04
原本虚拟机安装的centos因为内核版本太低,所以重新安装了一个最新的ubuntu。
使用root用户,不是的话自己加sudo前缀。官方脚本安装的话可以,使用微软的镜像加速
curl -fssl get.docker.com -o get-docker.sh
sh get-docker.sh --mirror azurechinacloud
如果脚本安装不成功的话,可以手动安装,其实就是上面那个sh里的内容
curl -fssl https://mirror.azure.cn/docker-ce/linux/ubuntu/gpg | apt-key add - echo "deb [arch=amd64] https://mirror.azure.cn/docker-ce/linux/ubuntu xenial edge" > /etc/apt/sources.list.d/docker.list apt-get update apt-get -y install docker-ce
2.镜像加速
在国内直接下载比较慢,可以改成使用阿里的镜像。在/etc/docker/目录下,创建一个daemon.json文件,在里面写上下面的内容。
{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
然后重启docker
systemctl daemon-reload systemctl restart docker
3.基础的docker命令
(1).拉取镜像
"docker pull name[:tag]"如果没有输入tag(版本号)的话默然拉取latest版本。
(2).列出镜像
"docker image ls"或者"docker images"。
(3).删除镜像
"docker image rm name/id"或者"docker rmi name/id"可以直接使用名字删除,比如tomcat镜像,可以直接"docker image rm tomcat",如果有多个tomcat镜像,可以在tomcat后加":版本号"。而id的话是镜像一般是唯一的,不会重复(比如tomcat的latest版本是8.5.38时,先使用"docker pull tomcat",再使用"docker pull tomcat:8.5.38",这样子就会形成两个镜像具有相同id的情况)。
(4).虚悬镜像
一般同一个版本的镜像还是会继续维护,当从镜像仓库拉取新的镜像后,新的镜像会取代原来版本的那个旧镜像,继承原来的名字和id,而旧镜像就会变成虚悬镜像,名字和id都变成none,虚悬镜像可以直接删除
列举出所有的虚悬镜像:"docker image ls -f dangling=true"
删除所有的虚悬镜像:"docker image prune"
(5).启动容器
"docker run 镜像名:版本" 其中的参数:
-i 交互式操作(占用主线程);
-t 开启终端,一般在整个命令的最后加上打开终端的名称或者路径,比如以交互式打开一个tomcat的bash终端,"docker run -it tomcat bash";
--rm 退出容器时就马上删除这个容器;
-d 以守护态运行这个容器;-p 端口映射,宿主机的端口:镜像的端口,比如启动tomcat,使用宿主机的88端口映射,则可以加上"-p 88:8080";
-v 挂载数据卷,将宿主机的某个目录替换为容器的某个目录。宿主机的数据卷可以多个容器共同使用、修改之后马上生效(没有重复写)、数据卷不会影响到容器的镜像、删除容器也不会删除数据卷。一般数据库的配置文件、日志文件、数据都是使用数据卷配置,以免丢失数据。一般格式为"-v 宿主机的文件目录 : 容器中的文件目录";
--name 为这个容器起一个名字,没有设置的话会默认取一个随机的名字。
(6).查看容器
查看正在运行的容器:"docker ps"
查看所有的容器(包括关闭了的容器,关闭了的容器不占用内存,存储在硬盘中):"docker ps -a"
(7)删除容器
"docker rm 容器名/id"或者"docker container rm 容器名/id"