docker 入门 命令及compose.yml 写法 没有想写写 看不明白的小伙伴给我留言

基本概念

 镜像Image 类似root文件系统

 容器 Container 

 仓库 Repository

客户端-服务器(c/s)架构模式 使用远程api和创建docker容器

 

拉去镜像  docker pull centos:7

启动         docker run -I -t centos:7 /bin/hash

-t: 在新容器内指定一个伪终端或终端。

-i: 允许你对容器内的标准输入 (STDIN) 进行交

cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表

 

 

Mysql 等服务是一个容器

启动一个mysql 容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

 

列出运行的容器 docker container ls

列出所有容器 包括停止运行的容器 docker container —all

杀死容器 docker container kill 【container ID】

删除容器文件 docker container rm [containerID]

dockerignore

 

exit 退出

 

启动容器 docker run -d ubuntu:15.10 /bin/sh -c “蚊子”

查看容器运行 docker ps

查看最后一次创建的容器 docker ps -l

标准输出 docker logs 2b1b7a428627id

停止容器 docker stop <容器 Id>

启动重启restart  docker start 《容器id or name》

删除容器 docker rm -f <容器 id>

清除所有处理终止状态的容器 docker container prune

 

查看所有命令 docker

查看容器 docker inspect id

启动容器 docker start 《容器 id》

后台运行docker run -itd --name ubuntu-test ubuntu /bin/bash //-d指定运行模式 -d 参数默认不会进入容器

重启容器 docker restart 《容器 id》

 

进入容器 退出停止docker sttach id

               退出不停止 docker exec -it 《容器id》/bin/hash

导出容器 docker export <容器id> ubuntu.tar 导出id快照到本地文件ubuntu.tar

导入 使用 docker import 从容器快照文件中再导入为镜像

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

通过指定 URL 或者某个目录来导入 docker import http://example.com/exampleimage.tgz example/imagerepo

运行web应用 docker pull training/webapp  #载入镜像

  Docker run -d -P training/webapp python app.py

-d 让容器在后台运行 

-P 将容器内部使用的网络端口yin射到主机

修改端口为5000 docker run -d -p 5000:5000 training/webapp python app.py

查看端口 docker port id或者name

查看web应用进程 docker top <name or id>

检查底层信息 docker inspect 《name or id》

拉取httpd 镜像 docker pull httpd

启动httpd。     docker run httpd

删除镜像 docker rmi 《name 》

 

更新镜像 

docker run -t -i ubuntu:15.10 /bin/bash 先创建容器

    apt-get update  更新

    exit 退出

提交容器副本 docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

-m: 提交信息描述

-a: 指定镜像作者

E28ed… : 容器id

runoob/ubuntu:v2:创建的目标镜像名

查看镜像 docker images

使用新镜像启动一个容器 ocker run -t -i runoob/ubuntu:v2 /bin/bash

镜像添加新标签 docker tag 《容器 name 》《新name runoob/centos:dev》

查询 仓库镜像 docker search centos 

 

 

Dockerfile 文件配置

FROM node:latest 依赖的镜像

RUN mkdir -p /home/www/express run表示执行操作

WORKDIR /home/www/express 工作目录路径

COPY . /home/www/express 拷贝到容器中路径

RUN npm install 执行操作

EXPOSE 3000:3000 容器端口暴露出来

ENTRYPOINT ["npm","run”]。大概是吧命令暴露一下能用吧

CMD ["start"] 启东市容器运行到命令

写好后 执行下面命令

 

docker build -t express .   -t是自定义名称 后面的.不能拉下

test % $(pwd) 获取test文件夹绝对路径

pwd 获取路径

test % sudo $(pwd)

Yin射卷到容器中 进行同步修改 docker run -d -v /Users/wangguan/test:/home/www/express  express/latest 

 

docker ps -a

docker logs cfb8df095db9。获取所有运行容器 通过id查询logs报错

docker run -d -p 3000:3000 express 将3000端口暴露出来

 docker run -d -p 3001:3000 -v /Users/wangguan/test:/home/www/express express 再跑一个 换个端口

docker run -d -p 3001:3000 -v /Users/wangguan/nodeTabble:/home/www/express2 node22

列出所有容器id docker ps -aq

停止所有容器  stop $(docker ps -aq)

删除所有容器 rm $(docker ps -aq)

删除所有镜像 rm $(docker images -q)

复制文件 docker cp mycontainer: /opt/file.txt /optloacl/docker cp /opt/local/file.tex m

删除所有不使用的镜像 docker image prune —force 

                  Docker image prune -f -a`

删除所有停止的容器 docker container prune

 

 

Dockfile 的作用就是把自己写的程序转成 image 镜像

 

 

$ docker container run -p 8000:3000 -it koa-demo /bin/bash

# 或者

$ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash

 

  • -p参数:容器的 3000 端口映射到本机的 8000 端口。

  • -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。

  • koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。

  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

如果一切正常,运行上面的命令以后,就会返回一个命令行提示符。

 

root@66d80f4aaf1e:/app#

 

 

docker ps -a 查询所有容器

Docker logs 《容器id》 获取logs 报错信息

 

拷贝文件到本地 docker cp  96f7f14e99ab:/www /tmp/

映射 -v 路径/径路 -p 90:80 镜像名称

 

 

不桶 image

 

/opt/data /  sha

 

/Users/wangguan/usr/share/nginx/html

/usr/share/nginx/html

 

本地操纵一个镜像 可以

直接使用dockerfile 编写 build时 用镜像

 

RUN echo ‘<h1>33333</h1> > /usr/share/nginx/html/index.html

 

docker-compose 编排微服务

docker run -itd --name mysql2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

拷贝  

docker cp 容器id:/var/lib/mysql /Users/wangguan/app/sql

 

docker-compose.yml  

version: '3.0'     #compose版本写错了报错

services:       #项目名称1自定义

nginx:         #nginx  名字自定义 

     restart: always   #开机自执行

     image: nginx       #会自己找nginx镜像 

     container_name: nginx2     #自定义名称

    ports:             #把80端口用90代替

     - 90:80

mysql:

restart: always

command: --default-authentication-plugin=mysql_native_password

image: mysql

container_name: mysql2

ports:

- 3306:3306

volumes:

- /Users/wangguan/app/sql:/var/lib/mysql

environment:

MYSQL_ROOT_PASSWORD: '123456'

node:

build: /Users/wangguan/nodeTabble    #指定dockerfile 所在目录 会自己过去执行dockerfile里面的命令

# command: bash -c "npm start"

volumes:

- .:/usr/src/app

# - /usr/src/app/node_modules

ports:

- "192.168.1.18:3001:3000"

docker-compose up -d

Starting nginx2 ... done

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值