docker的使用

查看docker版本
docker version
查看docker信息
docker info
docker给用户添加sudo权限
sudo usermod -aG docker $USER
命令行运行docker
#service 命令用法
sudo service docker start
#systemctl 命令用法
sudo systemctl start docker

image文件 (容器模板)

列出本机的所有 image 文件

docker image ls

删除 image 文件

docker image rm [imageName]

Docker官方仓库 https://hub.docker.com/
#将image文件从仓库抓取到本地
docker image pull library/hello-world
#docker官方库都是放在library组里面
docker image pull hello-world
#运行image文件,生成一个正在运行的容器实例,不过运行完,容器就会自动停止
docker container run hello-world
#不会自动终止
docker container run -it ubuntu bash
#手动终止不会自动终止的容器
docker container kill [containID]

容器文件
#列出本机正在运行的容器
docker container ls
#列出本机所有容器,包括终止运行的容器
docker container ls --all
#删除终止运行的容器文件
docker container rm [containerID]

Dockerfile文件
.dockerignore(文件下面路径排除,不打包进入image文件中)
.git
node_modules
npm_debug.log
#项目根目录下,新建一个文本文件Dockerfile
FROM node:8.4 #该image文件继承官方的node image, 冒号表示标签,这里标签是8.4,即8.4版本的node.
COPY . /app #将单签目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入image文件的/app目录。
WORKDIR /app #指定接下来的工作路径为/app
RUN npm install --registry=https://registry.npm.taobao.org #在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包
进入image文件。
EXPOSE 3000 #将容器 3000 端口暴露出来,允许外部连接这个端口。
#有dockerfile文件以后,就可以使用docker image build命令创建image文件。
docker image build -t koa-demo .
#或者
docker image build -t koa-demo:0.0.1 .

-t 参数用来指定image文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的

那个点表示Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。

#生成容器
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。
#在容器的命令行,按下ctrl + c停止Node进程,然后按下Ctrl + d (或者输入exit)退出容器。此外,也可以用
docker container kill 终止容器运行。
#在本机的另一个终端窗口,查出容器的ID
docker container ls
#停止指定的容器运行
docker container kill [containerID]
#容器停止运行之后,并不会消失,用下面的命令删除容器文件
docker container ls --all
#删除指定的容器文件
docker container rm [containerID]
#也可以使用docker container run命令的–rm参数,在容器终止运行后自动删除容器文件。
docker container run --rm -p 8000:3000 -it koa-demo /bin/bash
#容器启动后,需要手动输入命令node demos/01.js.可以把命令写在Dockerfile里面,这样容器启动以后,
这个命令就已经执行了,不用再手动输入。
CMD node demos/01.js
#RUN命令是在image文件的构建阶段执行,执行结果都会打包进入image文件;CMD命令则是在容器启动后执行。另外,
一个Dockerfile可以包含多个RUN命令,但是只能有一个CMD命令。若指定CMD命令以后,docker container run命令就不能
附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令。现在,启动容器可以使用下面的命令。
docker container run --rm -p 8000:3000 -it koa-demo:0.0.1

#发布image文件,去hub.docker.com或cloud.docker.com注册一个账号。然后,用下面的命令登录。
docker login
#为本地的image标注用户名和版本
docker image tag [imageName] [username]/[repository]:[tag]
#实例
docker image tag koa-demos:0.0.1 ruanyf/koa-demos:0.0.1
#也可以不标注用户名,重新构建一下image文件
docker image build -t [username]/[repository]:[tag] .
#发布image文件
docker image push [username]/[repository]:[tag]

#重新使用容器,用于启动已经生成、已经停止运行的容器文件
docker container start [containerID]
#docker container kill命令终止容器运行,相当于向容器里面的主进程发出SIGKILL信号。而docker container stop 命令
也是用来终止容器运行,相当于向容器的朱京城发出SIGTERM信号,然后过一段时间再发出SIGKILL信号。
两个信号的差别是,应用程序收到SIGTERM信号以后,可以自动进行收尾清理工作,但也可以不理会这个信号。如果收到
SIGKILL信号,就会强行立即终止,那些正在进行中的操作会全部丢失。
docker container stop [containerID]
#查看docker容器的输出,即容器里面shell的标准输出。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个
命令查看输出。
docker container logs [containerID]
#用于进入一个正在运行的docker容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。
一旦进入了容器,就可以在容器的shell执行命令。
docker container exec -it [containerID] /bin/bash
#用于从正在运行的Docker容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。
docker container cp [containerID]:[/path/to/file] .

#WordPress的安装
#基于php的image文件新建一个容器,并且运行该容器。php的标签是5.6-apache,表装的是php5.6,并且自带Apache服务器。
该命令的三个参数含义如下:
–rm:停止运行后,自动删除容器文件。
–name wordpress:容器的名字叫做wordpress。
–volume " P W D / " : / v a r / w w w / h t m l : 将当前目录( PWD/":/var/www/html: 将当前目录( PWD/":/var/www/html:将当前目录(PWD)映射到容器的/var/www/html(Apache对外访问的默认目录)。
因此,当前目录的任何修改,都会反映到容器里面,进而被外部访问到。
docker container run --rm --name wordpress --volume “KaTeX parse error: Expected 'EOF', got '#' at position 36: …php:5.6-apache #̲拷贝WordPress安装包 …PWD/”:/var/www/html --link wordpressdb:mysql phpwithmysql
#更改wordpress目录权限,让容器可以将配置信息写入这个目录
chmod -R 777 wordpress
#查看wordpress容器的IP地址
docker container inspect wordpress

#WordPress容器的定制,-p 127.0.0.2:8000:80:将容器的80端口映射到127.0.0.2的8080端口。
–volume “ P W D / w o r d p r e s s " : / v a r / w w w / h t m l : 将容器的 / v a r / w w w / h t m l 目录映射到当前目录的 w o r d p r e s s 子目录。 d o c k e r c o n t a i n e r r u n − d − p 127.0.0.2 : 8000 : 80 − − r m − − e n v W O R D P R E S S D B P A S S W O R D = 123456 − − l i n k w o r d p r e s s d b : m y s q l − − v o l u m e " PWD/wordpress":/var/www/html: 将容器的/var/www/html目录映射到当前目录的wordpress子目录。 docker container run -d -p 127.0.0.2:8000:80 --rm --env WORDPRESS_DB_PASSWORD=123456 --link wordpressdb:mysql --volume " PWD/wordpress":/var/www/html:将容器的/var/www/html目录映射到当前目录的wordpress子目录。dockercontainerrundp127.0.0.2:8000:80rmenvWORDPRESSDBPASSWORD=123456linkwordpressdb:mysqlvolume"PWD/wordpress”:/var/www/html wordpress

#Docker Compose工具
#启动所有服务
docker-compose up
#关闭所有服务
docker-compose stop
#查看版本
docker-compose --version
#新建docker-compose.yml文件
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
web:
image: wordpress
links:
- mysql
environment:
- WORDPRESS_DB_PASSWORD=123456
ports:
- “127.0.0.3:8080:80”
working_dir: /var/www/html
volumes:
- wordpress: /var/www/html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值