Docker 开发中常见 Docker 文件:
Dockerfile: 用来创建自定义镜像
docker-compose.yml: 可整合多个镜像, 常用于在启动容器时配置运行参数,便于命令行操作
Docker pull 代理 docker pull 的代理不走环境变量http_proxy, 也不走/etc/docker/daemon.json 里的proxy. 它有一个属于自己的设置。 方法如下:
1 2 sudo mkdir -p /etc/systemd/system/docker.service.dsudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
http-proxy.conf
内容如下:
1 2 3 4 [Service] Environment="HTTP_PROXY=http://<proxy_address>:<proxy_port>" Environment="HTTPS_PROXY=http://<proxy_address>:<proxy_port>" Environment="NO_PROXY=localhost,127.0.0.1,::1"
重启
1 2 3 sudo systemctl daemon-reloadsudo systemctl restart docker systemctl show --property=Environment docker
案例:运行 code-server 启动镜像等于创建容器. 假如我们运行一个 code-server,我们想给一些参数
1 2 3 4 5 6 7 8 9 10 11 12 docker run -d \ --name=code-server \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -e PASSWORD=password `#optional` \ -e SUDO_PASSWORD=password `#optional` \ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \ -p 8443:8443 \ -v /path/to/appdata/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/code-server:latest
命令启动不好做修改. 利用 docker-compose 每次运行容器只需这个配置文件. code-server 的配置文件 docker-compose.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --- version: "2.1" services: code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - PASSWORD=password - SUDO_PASSWORD=password - DEFAULT_WORKSPACE=/config/workspace volumes: - /path/to/appdata/config:/config ports: - 8443 :8443 restart: unless-stopped
通常在开发完工后会将项目打包成生产环境.
1 docker build -t celiae/ceblog:latest .
稍等片刻,可以得到镜像名为”celiae/ceblog”,标签名为”latest”的镜像.latest 以为最新版.
启用容器 1 docker run -p 1024:3000 celiae/ceblog:latest
端口映射, 浏览器输入”localhost:1024”,OK
它会列出正在运行中的容器进程
DockerHub 1 docker push celiae/ceblog:latest
在 dockerhub 登陆账号在仓库(repository)中能看到 celiae/ceblog 的最新版本
1 2 docker pull celiae/ceblog:latest docker run -d -p 1024:3000 celiae/ceblog:latest
-d 运行在 daemon 后台
Docker Compose 目前 Docker Compose 不推荐在 docker-compose.yml 文件里声明版本(version):
1 WARN[0000] /home/celiae/Templates/mall4cloud-3.3/doc/中间件docker-compse一键安装/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
部分代码来自linuxserver/code-server