先谈一下对镜像、容器的理解,镜像是个程序,是静止的,启动后就变为容器,容器与镜像之间可以互相转换;docker在下载镜像时,是从某个源下载的,默认是docker官方源,官方源在外国下载慢,通常使用国内源。镜像是有路径的,如果镜像有路径,那么拉取时要指定路径。

docker-compose是容器的编排工具,比如先启动哪个容器,后启动哪个容器,容器之间的依赖顺序,是干这些的。compose[kəmˈpəʊz]的意思是作曲、创作(音乐)的意思,恰如其分的展示了它的作用。


指定镜像源
编辑/etc/docker/daemon.json

{
  "registry-mirrors": ["https://reg-mirror.qiniu.com"]
}

然后,重启docker,重启docker后,正在运行的容器也会关闭,需要重新启动。

systemctl restart docker

搜索镜像

docker search imageName

下载镜像

docker pull imageName

下载某版本镜像

docker pull imageName:tag

查看镜像

docker images

查看运行的容器

docker ps

查看全部容器(包含停止的)

docker ps -a

这里的-a-all的意思。


创建容器并运行
创建容器并运行有两种,一种是运行后进入交互模式,一种是后台运行不进入交互模式。

  • 有交互
//进入交互模式
docker run -it --name containername imagename /bin/bash

-i,interactive, 保持标准输入打开,进入交互模式
-t,tty,分配pseudo-tty
-e,设置环境变量key=value格式
-p,指定host与container的端口映射,格式 hostport:containerport

-it 一般与 /bin/bash同时使用,如退出交互模式,ctrl+p+q

  • 无交互
//容器在后台运行并打印容器id
docker run  --name containername -d imagename

停止容器

docker stop cotianername/containerid

启动容器

docker start cotianername/containerid

删除容器

docker rm cotianername/containerid

进入容器

docker exec -it containername/containerid /bin/bash

退出容器

exit

这张图对docker命令总结的比较全,容器与镜像之间互相转换、容器与宿主机之间传输文件、根据dockerfile创建镜像、从私服推送/拉取镜像、

docker镜像 容器 启动、停止、删除容器、查看端口映射_重启

查看端口映射

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"

会输出类似以下结果

CONTAINER ID   NAMES        PORTS
1234567890AB   container1   0.0.0.0:8080->80/tcp
9876543210BA   container2   0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp