docker-常规命令
发布时间 :
Docker镜像的基础操作
从github拉取镜像
命令格式:
docker pull [选项] [Docker Registry 地址[:端口号/] 仓库名[:标签]
列出本地镜像
删除本地镜像
1
| docker image rm -f image_id
|
使用dockerfile构建自己的镜像
创建一个空白的目录并进入
编辑dockerfile文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| FROM centos
MAINTAINER xiaopangsoftware.taobao.com
WORKDIR /app
COPY index.js /app COPY package.js /app
RUN curl --silent --location https://rpm.nodesource.com/setup_10.x bash - && yum -y install nodejs && npm install
EXPOSE 8080
CMD["node","/app/index.js"]
|
构建镜像
1
| docker build -t xiaopang/centos-nodejs:1.0
|
** -t 你的名字/镜像的名字
查看构建成功的images
运行新构建的images
1
| docker run -p 8080:8080 -d centos-nodejs:1.0
|
docker 容器的基础操作Containers
初次启动
1
| docker run -p 8080:8080 -d centos-nodejs:1.0
|
说明:通过docker run 运行 首先从本地查询是否有这个镜像,无 则先下载后启动
修改重启配置
1
| docker container update --restart=always <containername>
|
启动己停止的docker容器
1 2 3
| docker start id
docker container restart gitlab-codes
|
查看正在运行的docker容器
列出所有容器ID
查看所有的停止或正在运行的容器
停止docker容器
查看docker容器运行的日志
删除己停止的docker容器
登录容器
Docker仓库
公有仓库
搜索镜像
拉取镜像
查看公有仓库
推送镜像到共有仓库
1 2
| 1、打标签 docker tag centos-nodejs:1.0 xiaohai0407/centos-nodejs:1.0
|
上传镜像到docker官方镜像库
1
| docker push xiaohai0407/centos-nodejs:1.0
|
查看是否上传成功
1
| docker search xiaohai0407
|
私有仓库
安装私有仓库
1
| docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
|
上传镜像到私有仓库
标记镜像到私有仓库
1
| docker tag centos-nodejs:1.0
|
127.0.0.1:5000/centos-nodejs:1.0
上传镜像到私有仓库
1
| docker push 127.0.0.1:5000/centos-nodejs:1.0
|
查看是否己上传
1
| curl 127.0.0.1:5000/v2/_catalog
|
删除本地镜像
1
| docker image rm 127.0.0.1:5000/centos-nodejs:1.0
|
从本地仓库下载镜像
1
| docker pull 127.0.0.1:5000/centos-nodejs:1.0
|
docker 数据管理
数据卷
创建数据卷
1
| docker volume create my-vol
|
查看所有数据卷
查看数据卷的详细信息
docker volume inspect my-vol
挂载主机目录
挂载主机目录
1 2 3 4 5
| docker rumn -p 8080:8080 -d --mount source=my-vol,target=/webapp centos-nodejs:1.0
docker rumn -p 8080:8080 -d --mount type=bind,source=/root/first,target=/webapp centos-nodejs:1.0
|
docker 网络
基础网络配置
1 2
| 外部访问容器 -P:随机端口 -p:指定端口 docker rum -p 8080:8080 -d centos-nodejs:1.0
|
-p 127.0.0.1:8080:8080 只有本机可以访问
-p 127.0.0.1::8080 本机的任意端口
查看端口信息
多个docker之间网络通信
创建一个自己的虚拟网桥
1
| docker network create -d bridge my-bridge
|
创建两个链接到新网桥的两个容器
1 2 3 4
| docker rum -it --name test5 --network my-bridge centos docker rum -it --name test6 --network my-bridge centos
yum install -y iproute
|
docker-compose
docker compose 安装
安装epl软件源
1
| yum install -y epel-release
|
安装python-pip
1
| yum install -y python-pip
|
安装docker compose
1
| pip install docker-compose
|
查看版本
docker compose 项目构建
通过docker compose file 构建 wordpress 应用
编写 wordpress docker compose file文件
新建目录并过入
1
| mkdir wordpress && cd wordpress
|
新建wordpress docker compose file文件
Version 参考
https://docs.docker.com/compose/compose-file/compose-file-v3/

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| version:"3" services:
db: image:mysql:latest voloumes: -db_data:/var/lib/mysql restart:always environment: MYSQL_ROOT_PASSWORD:somewordpress MYSQL_DATABASE:wordpress MYSQL_USER:wordpress MYSQL_PASSWORD:wordpress wordpress: depends_on: -db image:wordpress:latest ports: -"80:80" restart:always environment: WORDPRESS_DB_HOST:db:3306 WORDPRESS_DB_USER:wordpress WORDPRESS_DB_PASSWORD:wordpress volumes: db_data:
|
项目构建
1 2 3 4 5 6 7 8
| docker-compose images docker-compose ps docker-compose stop docker-compose rm docker-compose start docker-compose scale wordpress =3 db=2 docker-compose port wordpress 80 docker-compose logs -f wordpress
|
docker常见端口
2375:未加密的docker socket,远程无密码访问主机
2376:tls加密套接字,
2377:集群模式套接字,适用于群集管理器,不适用于docker客户端
5000:docker注册服务
4789 和 7946:覆盖网络
1 2 3 4 5
| docker start $(docker ps -a -q)
docker stop $(docker ps -a -q)
|
docker操作所有容器
1、启动所有容器
1
| docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
|
2、关闭所有容器
1
| docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
|
3、删除所有容器
1
| docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
|
或者尝试:
docker start $(docker ps -a -q)
-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令,依次删除容器
4、删除所有镜像
1
| docker rmi $(docker images | awk '{print $3}' |tail -n +2)
|
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 xiyugee@qq.com