docker学习笔记

容器的基本操作

启动容器
$ docker run IMAGE [COMMAND] [ARG…]

docker run centos7 echo 'hello word'

启动交互式容器
$ docker run -i -y IMAGE /bin/bash
-i --interactive=true|falsh 默认false 启动守护式进程
-太–tty=true|false默认false

docker run -i -t ubuntu /bin/bash

查看容器
$ docker ps [-a] [-l]

docker ps -a -l
docker inspect 59761b775530(容器ID/容器名)

自定义容器名

$ docker run --name=容器名称 -i -t centos7 /bin/bash

重新启动停止的容器

$ docker start -i 容器名/自定义容器名

删除停止的容器

$ docker rm 容器名

什么是守护式容器:

  1. 能够长期运行
  2. 没有交互式会话
  3. 适合运行应用程序和服务

以守护形式运行容器:

$ docker run -i -t IMAGE /bin/bash
ctrl+p ctrl+q

附加到运行中的容器【再次进入以守护形式运行的容器中】:

$ docker attach 容器名【ID/NAME】

启动守护式容器

$ docker run -d 镜像名 [COMMAND] [ARG]

查看容器日志

$ docker logs [-f] [-t] [--tail] 容器名
		-f  --follows=true|false 默认false[一直跟踪并返回变化]
		-t --timestamps=true|false 默认false【在结果加上时间戳】
		--tail="all"【返回数量日志】
$ docker -ft --tail10 text1		

查看运行中容器内进程:

$ docker top 容器名

在 运行中的容器内启动新进程

$ docker exec [-d] [-i] [-t] 容器名 【COMMAND】【ARG...】

停止守护式容器

$ docker stop 容器名
$ docker kill 容器名

在容器中部署静态网站

设置容器的端口映射

run [-P] [-p]
	-P ,--publish-all=true|false 默认为false
		docker run -P -i -t ubuntu /bin/bash
	-p , --publish=[]
		containerPort
			docker run -p 80 -i -t ubuntu /bin/bash
		hostPost:containerPort
			docker run -p 8080:80 -i -t ubuntu /bin/bash
		ip::containerPort
			docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
		ip:hostPort:containerPort
			docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

Nginx部署流程

  1. 创建映射80端口的交互式容器
  2. 安装Nginx
  3. 安装文本编辑器VIM
  4. 创建静态页面
  5. 修改Nginx配置文件
  6. 运行Nginx
  7. 验证网站访问
//创建映射80端口交互式容器
docker run -p 80 --name=web -i -t ubuntu /bin/bash
//安装Nginx
apt -get install -y nginx
//安装VIM
apt -get install -y vim
//创建静态页面
mkdir -p /var/www/html
cd /var/www/html
vim index.html
//修改Nginx配置文件
whereis nginx
ls /etc/nginx
ls  /etc/nginx/sites-enabled
vim /etc/nginx/sites-enabled/default
修改root的值修改为静态网站的位置 保存退出
//回根目录
cd /
//启动nginx
nginx
//查看当前进程
ps -ef
ctrl+p ctrl+q退出容器
//查看当前运行的容器
docker ps
//查看端口映射状态
docker port web
//验证是否可以正常访问[用宿主机查看]
curl http://127.0.0.1:4906
//验证是否可以正常访问[用docker机查看]
docker inspect web
找到Networksettings->IpAddress 就是地址不用指定端口号

如果停止了容器再重启容器,nginx会不启动,则需要使用 docker exec web nginx 启动进程,但是会改变映射的端口号及IP地址

Docker镜像与仓库

查看和删除镜像

  1. 列出镜像
  2. 镜像标签和仓库
  3. 查看镜像
  4. 删除镜像
    列出镜像
$ docker images [OPTONS] [REPOSITORY]
	-a ,--all=false 显示所有镜像
	-f , --fikter=[] 显示时过滤条件
	--no-trunc=false
	-q ,--quiet =false 只显示唯一ID

镜像的仓库
REPOSITORY 仓库 镜像的集合
REGISYTRY 仓库 docker提供的存储镜像的服务

镜像的标签
TAG 标签

查看镜像

$ docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
	-f ,--fomat=""

删除镜像

$ docker rmi [OPTIONS] IMAGE [IMAGE..]
	-f ,--force=false Force removal of the image
	--no-prune=false Do not delete untagged parents

获取和推送镜像

  • 查找镜像
  • 拉取镜像
  • 推送镜像

查找镜像

 1.Docker Hub	
 		[Docker Hub](https://registry.hub.docker.com)
$ docker search [OPTIONS] TERM
	--automated=false Only show automated builds
	--no-trunc=false Don't truncate output
	-s,--stars=0 Only displays with at least xstars  //限制星级
	最多返回25个结果

拉取镜像

$ docker pull [OPTIONS] NAME [:TAG]
	-a,-all-tags=false Download all tagged images in the repository
docker pull ubuntu:14.04

使用 --registry-mirror选项
	1、修改:/etc/default/docker
	2、添加:DOCKER_OPTS="--registry-mirror=http://MIRROR-ADDR"
	https://www.daocloud.io

推送镜像

$ docker push NAME[:TAG]

构建镜像

  1. 保存对容器的修改,并再次使用
  2. 自定义镜像的能力
  3. 以软件的形式打包并分发服务及其运行环境
$ docker commit 通过容器构建
$ docker build 通过Dockerfile文件构建

使用commit构建镜像

$ docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
	-a,--author="" Author
	-m,--message="" Commit message //镜像构建信息
	-p,--pause=true Pause container during commit //指示不暂停运行中的命令

使用Dockerfile构建镜像

  1. 创建Dockerfile
  2. 使用$ docker build命令

创建第一个Dockerfile

#First Dockerfile
From ubuntu:14.o4
MAINTAINER dormancypress "dormancypress@outlook.com"
RUN apt-get install -y nginx
EXPOSE 80
$ docker build [OPTIONS] PATH | URL | -
	--force-rm=false
	--no-cache=false
	--pull=false
	-q,quiet=false
	--rm=true
	-t,--tag=""

docker的C/S模式

Remote API

  1. RESTful 风格API
  2. STDIN\STDOUT\STDERR
Docker官方的Remote API Reference:
	https://docs.docker.com/reference/api/docker_remote_api/

连接方式

  1. unix:///var/run/docker.sock
  2. tcp://hos:port
  3. fd://socketfd

Docker守护进程的配置和操作

查看守护进程
$ ps -ef | grep docker
$ sudo status docker
使用service命令管理
$ sudo service docker start
$ sudo service docker stop
$ sudo service docker restart

Docker的启动选项

docker -d [OPTIONS]
运行相关:
	-D,--debug=false
	-e,--exec-driver="native"
	-g,--graph="/var/lib/docker"
	--icc=true
	-l,--log-level=“info”
	--label=[]
	-p,--pidfile="/var/run/docker.pid"
Docker服务器连接相关
	-G,--group="docker"
	-H,--hos=[]
	--tls=false
	--tlscacert="/home/sven/.docker/ca.pem"
	--tlscert="/home/sven/.docker/cert.pem"
	--tlskey="home/sven/.docker/key.pem"
	--tlsverify=false
RemotAPI相关
	--api-enable-cors=false
储存相关
	-s,--storage-driver=""
	--selinux-enabled=false
	--storage-opt=[]
Registry相关
	--insecure-registry=[]
	--registry-mirror=[]
网络设置相关
	-b,--bridge=""
	--big=""
	--fixed0cidr=""
	--fixed-cidr-v6=""
	--dns=[]
	--dns-search=[]
	--ip=0.0.0.0
	--ip-forward=true
	--ip-masq=true
	--iptables=true
	--ipv6=false
	--mtu=0
启动配置文件
	/etc/default/docker

Docker的远程访问

环境准备
1.第二台安装docker的服务器
2修改docker守护进程启动选项,区别服务器
3.保证ClientAPI与Server API版本一致
修改服务器端配置
1.修改Docker守护进程启动选项
	-H tcp://host:port
		unix:///path/to/socket
		fd://* or fd://socketfd
守护进程默认配置
	-H unix:///var/run/docker.sock
修改客户端配置
1.试用Docker客户端命令选项
	-H tcp://host:port
		unix:///path/to/socket
		fd://* or fd://socketfd
守护进程默认配置
	-H unix:///var/run/docker.sock
或者使用环境变量Docker_HOST
	export DOCKER_HOST ="tcp://10.211.5.2375"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值