如你如见,最近这个仓库在 GIthub 上变的流行。不久的将来,我们会进一步完善它。
感谢你的支持。
点击 网址.
查看 这里 获取更多信息。
curl -sSL https://get.docker.com/ | sh
查看 这里 获取更多信息
使用下面连接下载 dmg 文件.
https://download.docker.com/mac/stable/Docker.dmg
查看 这里 获取更多信息
通过 msi 文件安装:
https://download.docker.com/win/stable/InstallDocker.msi
docker login
docker login localhost:8080
docker logout
docker logout localhost:8080
docker search nginx
docker search --filter stars=3 --no-trunc nginx
docker image pull nginx
docker image pull eon01/nginx localhost:5000/myadmin/nginx
docker image push eon01/nginx
docker image push eon01/nginx localhost:5000/myadmin/nginx
- 启动ubuntu:latest 镜像
- 绑定容器的
80
端口到宿主机的3000
端口- 将主机
/data
目录挂载到容器中- 注意: 在 windows 系统中,你需将
-v ${PWD}:/data
改为-v "C:\Data":/data
docker container run --name infinite -it -p 3000:80 -v ${PWD}:/data ubuntu:latest
docker container create -t -i eon01/infinite --name infinite
docker container run -it --name infinite -d eon01/infinite
docker container rename infinite infinity
docker container rm infinite
容器只有停止后才可被删除,通过 docker stop
命令停止容器。为避免这个可在容器启动时加上--rm
选项。
docker container update --cpu-shares 512 -m 300M infinite
docker exec -it infinite sh
上例中,如果报错可将 bash
可替换为 sh
.
docker container start nginx
docker container stop nginx
docker container restart nginx
docker container pause nginx
docker container unpause nginx
docker container wait nginx
docker container kill nginx
docker container kill -s HUP nginx
docker container attach nginx
简写:
docker ps
或者:
docker container ls
docker ps -a
docker container ls -a
docker logs infinite
docker container logs infinite -f
docker container inspect infinite
docker container inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)
docker system events infinite
docker container port infinite
docker container top infinite
docker container stats infinite
docker container diff infinite
docker image ls
docker build .
docker build github.com/creack/docker-firefox
docker build - < Dockerfile
docker build - < context.tar.gz
docker build -t eon/infinite .
docker build -f myOtherDockerfile .
curl example.com/remote/Dockerfile | docker build -f - .
docker image rm nginx
docker image load < ubuntu.tar.gz
docker image load --input ubuntu.tar
docker image save busybox > ubuntu.tar
docker image history busybox
docker container commit nginx
docker image tag nginx eon01/nginx
docker image push eon01/nginx
docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
--subnet=192.168.0.0/16 \
--subnet=192.170.0.0/16 \
--gateway=192.168.0.100 \
--gateway=192.170.0.100 \
--ip-range=192.168.1.0/24 \
--aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
--aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
MyOverlayNetwork
docker network rm MyOverlayNetwork
docker network ls
docker network inspect MyOverlayNetwork
docker network connect MyOverlayNetwork nginx
docker container run -it -d --network=MyOverlayNetwork nginx
docker network disconnect MyOverlayNetwork nginx
使用 Dockerfile, 你可以暴露容器端口:
EXPOSE <port_number>
你还可以通过下面方式,将容器端口映射为宿主机端口:
docker run -p $HOST_PORT:$CONTAINER_PORT --name <container_name> -t
例如
docker run -p $HOST_PORT:$CONTAINER_PORT --name infinite -t infinite
- 选择最精简的基础镜像
- 创建用户并分配使其用镜像基础权限
- 署名并校验镜像以避免中间人攻击(MITM) 攻击
- 寻找、修复和关注开源漏洞
- 不要在镜像中泄露敏感信息
- 使用明确固定的镜像标签
- 使用 COPY 代替 ADD
- 为元数据创建标签
- 采用多阶段构建以获得小且安全的镜像
- 使用 linter
详细内容参考 Snyk 的 10 Docker Image Security Best Practices blog
docker container rm nginx
docker container rm -v nginx
docker container rm $(docker container ls -a -f status=exited -q)
docker container rm `docker container ls -a -q`
docker image rm nginx
docker image rm $(docker image ls -f dangling=true -q)
docker image rm $(docker image ls -a -q)
docker image rm -f $(docker image ls | grep "^<none>" | awk "{print $3}")
docker container stop $(docker container ls -a -q) && docker container rm $(docker container ls -a -q)
docker volume rm $(docker volume ls -f dangling=true -q)
docker system prune -f
docker system prune -a
curl -ssl https://get.docker.com | bash
docker swarm init --advertise-addr 192.168.10.1
docker swarm join-token worker
docker swarm join-token manager
docker service ls
docker node ls
docker service create --name vote -p 8080:80 instavote/vote
docker service ps
docker service scale vote=3
docker service update --image instavote/vote:movies vote
docker service update --force --update-parallelism 1 --update-delay 30s nginx
docker service update --update-parallelism 5--update-delay 2s --image instavote/vote:indent vote
docker service update --limit-cpu 2 nginx
docker service update --replicas=5 nginx
该文章首发于 Painless Docker Course