安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
方法一,使用官方的
安装 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
sudo apt-key fingerprint 0EBFCD88
返回类似:
pub rsa4096 2017-02-22 \[SCEA\]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid \[ unknown\] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 \[S\]
方法二,使用阿里云的
# 安装阿里云的 GPG 证书:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 添加源:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 由于 20.04 新发布,没有可用的源,可以使用 18.04的:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable"
安装:
sudo apt-get install docker-ce docker-ce-cli containerd.io
验证安装是否成功:
sudo docker run hello-world
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://cqj9zqqh.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker进入镜像的终端:
docker run -t -i image_name /bin/bash
启动 php + nginx
docker run --name runoob-php-nginx -p 8083:80 -d
-v ~/nginx/www:/usr/share/nginx/html:ro
-v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro
--link myphp-fpm:php
nginx
使用 私有仓库
登录私有仓库
sudo docker login --username=xxx registry.cn-qingdao.aliyuncs.com
打包成本地镜像,把 59552fc496c6 打包成 xxx/lotus_env
sudo docker commit 59552fc496c6 aaa/xxx
添加 tag
sudo docker tag aaa/xxx registry.cn-qingdao.aliyuncs.com/aaa/xxx:latest
推送
sudo docker push registry.cn-qingdao.aliyuncs.com/aaa/xxx:latest
拉取
sudo docker pull registry.cn-qingdao.aliyuncs.com/aaa/xxx:latest
nginx 镜像的默认站点目录: /usr/share/nginx/html
docker run --name ngx -p 8091:8091 -d
-v ~/data/test_nginx1/html:/usr/share/nginx/html:ro
-v ~/data/test_nginx1/nginx_conf:/etc/nginx/conf.d:ro
nginxnginx 指定目录映射,一个网页目录,一个配置目录(修改端口等):
docker run --name ng91 -p 8091:8091 -d -v /home/xxx/data/test_nginx1/html:/usr/share/nginx/html:ro -v /home/xxx/data/test_nginx1/nginx_conf:/etc/nginx/conf.d:ro nginx docker run --name ng92 -p 8092:8092 -d -v /home/xxx/data/test_nginx2/html:/usr/share/nginx/html:ro -v /home/xxx/data/test_nginx2/nginx_conf:/etc/nginx/conf.d:ro nginx
测试启动不同端口,访问的文件是可以隔离开,再测试 mysql 镜像
要注意目录的权限