Dockerfile
大约 1 分钟
Dockerfile
- from 基础镜像
- label 标签
- run 执行命令并创建新的image layer
- workdir 除了设置文件目录
- add 添加并解压
- copy 复制文件
- env
- volume
- network
- cmd 设置容器启动后执行的命令
- entrypoint 设置同期启动时运行的命令
FROM centos
LABEL author=orangbus
RUN yum install -y vim
WORKDIR /home/Code
ENV PHP_VERSION 7.4
RUN yum install -y mysql-server="${PHP_VERSION}"
shell: entrypoint echo $name
exec: entrypoint ["/bin/bash","-c","echo $name"]
删除退出的容器
docker rm $(docker ps -qa)
## emby
EMBY_IMAGE=emby/embyserver
EMBY_HTTP_PORT=8085
EMBY_HTTPS_PORT=8086
EMBY_CONFIG_PATH=./emby/config
EMBY_SHAREDIR_PATH=./emby/gd
# emby
emby:
container_name: emby
image: ${EMBY_IMAGE}
restart: always
ports:
- "${EMBY_HTTP_PORT}:8096"
- "${EMBY_HTTPS_PORT}:8920"
environment:
UID: 1000
GID: 100
GIDLIST: 100
DEVICE: /dev/dri:/dev/dri
RUNTIME: nvidia
volumes:
- ${EMBY_CONFIG_PATH}:/config
- ${EMBY_SHAREDIR_PATH}:/mnt/gd
docker网络
bridge
通过宿主机和docker0网络转换
host
公用宿主机的网络接口
容器互联
docker run --name=demo1 -d nginx
如果我们在创建一个docker容器,想直接通过容器名称连接可以通过--link
docker create --name=demo2 --link=demo1
当demo2想要跟demo1互通,可以这样
docker run --name=demo2 -d nginx
ping 172.17.1.1 # demo1 ip
// or
ping demo1 # 这样可是可ping通的
同一个brige
可以通过容器名称互通(类似域名)
docker-compose
参数说明参考:https://www.cnblogs.com/wutao666/p/11332186.html
多个nginx做负载均衡,可以使用paproxy做负载均衡即可
保持后台运行
当我们运行一个 container
没有后台守护进程的时候,可以添加tty
参数保持容器处于 up
状态
busybox:
image: busybox
networks:
- scrapy
tty: true # 保持后台运行
command
容器启动后执行的命令
command:bundle exec thin -p 3000
该命令也可以是一个列表,方式类似于dockerfile:
command:["bundle","exec","thin","-p",``"3000"]
harbor搭建个人仓库
https://www.cnblogs.com/wutao666/p/11301519.html