只推荐在
Linux
发行版或者Mac
上安装Docker
,在Windows
安装Docker,实际上是先装一个虚拟机,然后在虚拟机上安装docker,对配置要求太高,像我的 6.9GB内存根本不够看
官方Docs,非常齐全:https://docs.docker.com/engine/install
善用万能命令 --help
[root@undi ~]# docker images
Options:
-a, --all 显示所有镜像(默认会省略中间的)
--digests 显示摘要
-q, --quiet 只显示镜像的ID
不填版本会默认是最终版 latest
[root@undi ~]# docker pull nginx:latest
-a, --all-tags 从仓库里下载所有版本
这两个其实是同一个命令
docker rmi 镜像名:版本
或者
docker image rm 镜像名:版本
docker ps -a
或者
docker container ls -a
[root@undi ~]# docker run -u root --rm -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docke.sock jenkinsci/blueocean
命令详解:
-u root
:指定容器的用户为root--rm
:当容器停止时自动删除容器,不支持与 -d
参数同时使用-p 8080:8080
:将宿主机的8080端口映射到容器的8080端口上,这样访问宿主机的8080端口就会直接访问到该容器的8080端口-v jenkins-data:/var/jenkins_home
:-v 挂载容器数据卷,将容器内的 /var/jenkins_home
目录,挂载到宿主机的 jenkins-data
目录 ,相对路径代表着 docker
的默认挂载目录 /var/lib/docker/volumes/
jenkinsci/blueocean
:镜像名-d
参数即可[root@undi ~]# docker stop redis
Options:
-t, --time int 设置一个时间,在这个时间后停止该容器
[root@undi ~]# docker start redis
Options:
-a, --attach -a参数带上了的话,那么会把pid1程序的输出都带到终端上
-i, --interactive -i参数是为了让容器响应输入,作用其实和run中的-i一样。
[root@undi ~]# docker exec -it nginx bash
Options:
-i, --interactive 让容器响应输入
-t, --tty 建立一个TTY,让我们可以输入命令
-u, --user string 进入的用户身份
[root@undi ~]# docker rmi nginx
Options:
-f, --force 强制删除,不管容器在不在运行
什么是数据卷, 为什么要使用数据卷?
数据卷
是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性,类似与 Linux
系统的挂载机制:
数据卷
可以在容器之间共享和重用数据卷
的修改会立马生效数据卷
的更新,不会影响镜像数据卷
默认会一直存在,即使容器被删除Docker 默认挂载目录为 /var/lib/docker/volumes
, 没有在创建的时候给他命名的话 Docker
会随便给他个名字,指定名字的话会在该目录下生成一个文件夹,挂载到指定容器的指定目录上,当然也可以任意指定文件夹来挂载的。
[root@undi ~]# docker volume create my-volume
my-volume
该操作直接在默认挂载目录上生成一个数据卷 my-volume
[root@undi ~]# docker volume ls
DRIVER VOLUME NAME
local 2375a26b0a92ca6923a9487c21b4cb017f017f33c5358a7177860ac9df167014
local my-volume
长 ID 的数据卷是容器启动时,没有显式挂载的卷,docker 给他们分配了一长串的 ID
[root@undi ~]# docker volume inspect my-volume
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-volume/_data",
"Name": "my-volume",
"Options": {},
"Scope": "local"
}
]
下面的命令会启动一个名为 web 的 nginx 容器,并将刚才创建的 my-volume
数据卷挂载到容器内的 /webapp
目录,如果数据卷不存在就会自动创建。
$ docker run -d -P --name web \
-v my-volume:/webapp \
nginx
[root@undi volumes]# docker volume rm my-volume
my-volume
欢迎指正,转载请注明出处
首次发布时间 2020-06-03
最后更新时间 2020-06-02
基于Halo 搭建的个人博客:https://undivided.top
不太想用但是流量很 HI 多的 CSDN
我的简书