容器使用
这篇笔记记录与2021年8月,当时我还在小公司出差到杭州实习呢,这一晃都两年了。迁移至此,分享给需要它的人。
获取镜像
$ docker pull mysql
启动容器
$ docker run -it mysql /bin/bash
-i : 交互式操作
-t : 终端
/bin/bash : 放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
$ exit // 退出
启动已停止运行的容器
查看所有的容器命令如下:
$ docker ps -a
使用 docker start 启动一个已停止的容器:
后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过-d
指定容器的运行模式。
$ docker run -itd --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
**注:**加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。
停止一个容器
$ docker stop <容器 ID>
停止的容器可以通过 docker restart 重启:
$ docker restart <容器 ID>
进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
exec 命令
$ docker exec -it 992126ad0464 /bin/bash
导出和导入容器
导出容器
$ docker export 1e560fca3906 > ubuntu.tar
导入容器快照
$ cat /home/docker/mysql.tar | docker import - test/mysql:v1
删除容器
$ docker rm -f 1e560fca3906
查看端口
$ docker port mysql
查看日志
docker logs -f mysql
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
查看进程
$ docker top mysql
镜像使用
列出镜像列表
$ docker images
各个选项说明:
- **REPOSITORY:**表示镜像的仓库源
- **TAG:**镜像的标签
- **IMAGE ID:**镜像ID
- **CREATED:**镜像创建时间
- **SIZE:**镜像大小
获取新镜像
$ docker pull xxx
查找镜像
$ docker search xxx
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
删除镜像
$ docker rmi xxx
构建镜像
我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
创建tag
$ docker tag 860c279d2fec runoob/centos:dev
容器连接
网络端口映射
-p我们也可以使用 -p 标识来指定容器端口绑定到主机端口。
- -P :是容器内部端口随机映射到主机的高端口。
- -p : 是容器内部端口绑定到指定的主机端口。
docker port 查看端口
容器互联
容器命名
--name
新建网络
$ docker network create -d bridge test-net
参数说明:
-d:参数指定 Docker 网络类型,有 bridge、overlay。
其中 overlay 网络类型用于 Swarm mode,在本小节中你可以忽略它。