# ubuntu
sudo apt-get install docker docker-compose
# centos
yum install docker-ce
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
基础
- 搜索镜像
Docker Hub
- 下拉镜像
docker pull <image name>
- 镜像列表
docker images
- 启动容器
docker run -itd --name <container name> <image id>
- 保持运行
docker run -d <image_id> tail -f /dev/null
- 映射端口
docker run -itd -p 19132:19132/udp
- 映射目录
docker run -itd -v /home/pi/docker:/docker
- 容器列表
docker ps --all
- 进入容器
docker exec -it <container name> "/bin/sh"
- 停止容器
docker stop <container name>
- 删除容器
docker rm <container name>
- 删除镜像
docker rmi <image id>
- 查看配置
docker container inspect <container name>
- 使用本地网络无需映射端口
--network host
- 除非手动停止,否则容器总是自动重启
--restart unless-stopped
- 镜像导出
docker save -o <tar 文件名> <镜像名称>
- 镜像导入
docker load -i <tar 文件名>
进阶
- 指定OS/ARCH
docker pull <name>@<digest>
- 重命名TAG
docker tag <image id> <image name>:<tag>
-
设置全局代理
~/.docker/config.json
{ "proxies":{ "default":{ "httpProxy":"http://127.0.0.1:7890", "httpsProxy":"http://127.0.0.1:7890" } } }
- 设置docker代理
$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
docker build -t image_name . --network host \
--build-arg http_proxy=http://127.0.0.1:7890 \
--build-arg https_proxy=http://127.0.0.1:7890
跨平台容器
- 获取QEMU
-
复制命令到系统路径
sudo cp qemu-arm-static /usr/bin/ sudo chmod +x /usr/bin/qemu-arm-static
-
注册QEMU虚拟机 [重启电脑后需要重新执行注册]
docker run --rm --privileged multiarch/qemu-user-static:register
-
下载armv7镜像
sudo docker pull ubuntu@sha256:02ef83b72fb2fb709c356d0669a433555bcc5d07e31dc0016d036f1ca201bf13
-
创建arm容器
sudo docker run -itd \ -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ -v /home/pi/codespace:/codespace \ b7071f5bf0df
-
测试容器架构
root@8674accc718a:/# uname -m aarch64