1 安装 Docker
$ wget -qO- get.docker.com | bash
$ systemctl enable docker
2 安装 Docker Compose(在步骤 1 中应该已经装好了,可以跳过)
$ curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3 开启 IPv6
编辑 /etc/docker/daemon.json 文件,加入下面的内容
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}
可以省略 fixed-cidr-v6 字段
{
"ipv6": true,
"experimental": true,
"ip6tables": true
}
重启 Docker 服务,并创建 IPv6 网络(同时也支持 IPv4)
$ systemctl restart docker
可以将 share-net 改成其他名称
$ docker network create --ipv6 share-net
4 在 docker-compose.yml 中使用共享网络的方法
services:
service-name:
image: 'xxxx'
ports:
- 'xxxx:xxxx'
networks:
- <my-shared-network>
networks:
<my-shared-network>:
external: true
使用同一个网络的服务可以通过 service-name 相互访问。
5 启动、停止和更新容器
创建
$ docker-compose up -d
重启服务
$ docker-compose restart
关闭服务
$ docker-compose down
更新镜像
$ docker-compose pull
$ docker-compose up -d --remove-orphans
删除旧的镜像
$ docker image prune
6 删除某个 Docker 服务
停止容器
$ docker-compose down
查看容器的ID和运行状态
$ docker ps -a
删除容器
$ docker rm <container_id>
查看镜像的ID
$ docker images
删除镜像
$ docker rmi <image_id>
7 在容器内执行命令
使用 docker run 执行命令
基本语法
$ docker run [OPTIONS] IMAGE_NAME COMMAND [ARG...]
执行一次性命令,执行完毕后容器删除
$ docker run --rm ubuntu echo "Hello from Ubuntu"
进入交互式 shell
$ docker run -it ubuntu /bin/bash
使用 docker exec 在正在运行的容器中执行命令
进入正在运行的容器的交互式 shell
$ docker exec -it <容器ID或名称> /bin/bash
使用 docker exec 在现有容器中执行命令而非进入 shell
$ docker exec <容器ID或名称> <命令>
8 更改 docker 数据目录
默认情况下数据目录是 /var/lib/docker,修改或新建 /etc/docker/daemon.json
{
"data-root": "/your/path"
}
然后重启 docker 服务。
9 导出/加载本地镜像文件
$ docker save -o myimage.tar <镜像名称>:<标签>
$ docker load -i myimage.tar