docker基础命令

ubuntu18.04安装docker

 # 删除存在的
 sudo apt-get remove docker docker-engine docker.io
 sudo apt-get update
 #安装依赖
 sudo apt-get install apt-transport-https \
	ca-certificates curl \
	software-properties-common
#添加Docker 公共密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

##设置版本库类型(Ubuntu18.04对应版本“bionic“”),软件版本包括三种:** stable、edge、test**
sudo add-apt-repository "deb [arch=amd64]  https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 

# 更新系统包索引
sudo apt-get update
# 安装最新版
sudo apt-get install docker-ce
# 验证安装是否成功
sudo docker --version
#启动
sudo systemctl start docker
#开机启动
sudo systemctl enable docker

docker加速配置

第一种
/etc/docker/daemon.json没有就新建,添加写明内容
{"registry-mirrors":["自己注册阿里云找到加速地址"]}
第二种
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://95822026.m.daocloud.io

普通用户打不开docker,添加到docker用户组
sudo usermod -a -G docker zrq
newgrp docker     #更新用户组
如果提示get …… dial unix /var/run/docker.sock权限不够
sudo chmod a+rw /var/run/docker.sock

docker命令

docker images	查看本地所有仓库
docker search helow-world	在线查找镜像仓库hello-world
docker pull ubuntu		在线下载ubuntu 镜像
docker image ls		查看本地所有镜像
docker run hello-world		运行镜像
docker ps		查看运行中镜像容器
docker ps -a	查看运行过镜像容器记录
docker ps -aq	查看运行过镜像容器记录的ID

docker run ubuntu		运行镜像
	-i 交互式操作	-t 终端
	-rm 容器退出后将其容器删除
	-d 返回容器的ID
docker run --rm ubuntu	运行后删除容器
docker run -it --rm ubuntu	进入Ubuntu操作系统
exit  退出镜像
docker rm 容器id	删除容器
docker rm `docker ps -aq`	删除所有容器记录
docker rmi 镜像id	删除镜像
docker logs 容器ID	查看后台运行容器的日志
docker stop 容器ID  停止后台运行容器
docker start 容器ID	重新启动容器
				容器ID		自定义名称
docker commit 79e7a03388fb zrq/centos-vim

docker运行一个web应用,通过端口映射外部浏览器可以访问
	将外部9000口映射到5000口,访问9000即可访问web
	docker run -d -p 9000:5000 training/webapp python app.py

docker仓库推送
	docker login
	docker push zrq1/web	注意zrq1为docker用户名
	docker pull zrq1/web	下载仓库

docker私有仓库搭建:

docker  
-v 参数  
假设我要在docker容器中安装 nginx 软件
	nginx软件有网页根目录
		root  /opt/static/nginx 
					js 
					css 
这个nginx静态文件,可以放在容器中管理
也可以通过-v参数挂载一个数据
		-v  宿主机/opt/staic/nginx      容器/opt/static/nginx  
					js1 js2 js3              容器中的nginx软件,读取数据时候,通过-v参数,去宿主机读取
					
					
1.下载docker 私有仓库镜像	
	docker pull registry
2.启动私有仓库容器实例
docker run -d \
-p 5000:5000 \
-v /opt/data/registry:/var/lib/registry \
registry

3.检查私有仓库的容器id
docker ps 

4.修改本地镜像的tag,便于推送到本地镜像仓库
docker tag 镜像名    10.0.0.10:5000/镜像名

5.修改docker配置文件,因为他默认不让推送非https的镜像
	1.找到本地docker文件
	vim /etc/docker/daemon.json 
	2.写入配置
	必须注意此文件是json格式!!!注意引号
	
		{"registry-mirrors": ["http://95822026.m.daocloud.io"],
			"insecure-registries":["10.0.0.10:5000"]
		}
	3.将此文件,添加到docker服务脚本中
	vim /lib/systemd/system/docker.service  
	4.写入以下配置,注意!!!,写入到[Service]配置块中,加载此配置文件
	[Service]
	EnvironmentFile=/etc/docker/daemon.json

	5.修改了docker配置文件,重新加载docker
		systemctl daemon-reload
	6.重启docker服务,使得生效
		systemctl restart docker 
	7.由于重启了docker,所有的容器实例全挂了,因此要打开私有仓库的容器实例
		1.docker ps -a   检查私有仓库的容器记录
		2. docker start  私有仓库的id
		3.此时docker  ps  检查 私有仓库服务是否启动
	8.推送本地镜像到私有docker仓库
		docker push 10.0.0.10:5000/hello-world 
	9.docker私有仓库提供了API数据可供查看
		http://10.0.0.10:5000/v2/_catalog
		
	10.可以测试删除本地镜像,然后从私有仓库拖取镜像
	11.完毕。。。

自定制镜像

# 创建文件Dockerfile
	touch Dockerfile
	vim Dockerfile
# 镜像基础
	FROM scratch #制作base image 基础镜像,尽量使用官方的image作为base image
	FROM centos #使用base image
	FROM ubuntu:14.04 #带有tag的base image
# 版本和信息
	LABEL version=“1.0” #容器元信息,帮助信息,Metadata,类似于代码注释
	LABEL maintainer=“yc_uuu@163.com"
# 安装环境
	#对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
	RUN yum update && yum install -y vim \
		Python-dev #反斜线换行
		
	RUN   yum install nginx -y 
	RUN   yum install mysql -y 
# 文件路径
	WORKDIR /root #相当于linux的cd命令,改变目录,尽量使用绝对路径!!!不要用RUN cd
	WORKDIR /test #如果没有就自动创建
	WORKDIR demo #再进入demo文件夹
	# RUN pwd     #打印结果应该是  /test/demo

# ADD与COPY
	- 优先使用COPY命令
	-ADD除了COPY功能还有解压功能

	ADD hello /  #把本地文件添加到镜像中,吧本地的hello可执行文件拷贝到镜像的/目录
	ADD test.tar.gz /  #添加到根目录并解压

	WORKDIR /root
	ADD hello test/  #进入/root/ 添加hello可执行命令到test目录下,也就是/root/test/hello 一个绝对路径
	COPY hello test/  #等同于上述ADD效果,只是复制,没有解压
# 变量赋值
ENV   变量名  变量值 
修改变量值,即可改变所有引用变量值的操作
ENV MYSQL_VERSION 5.6 #设置一个mysql版本值为5.6
RUN yum install -y mysql-server=“${MYSQL_VERSION}”  # 安装5.6的mysql

案例

Dockerfile文件的内容

FROM python:3.7
LABEL maintainer="Chao Yu<yc_uuu@163.com>"
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 8080
CMD ["python","app.py"]


# 构建镜像,执行命令,app.py必须和Dockerfile在一层,“.”代表当前路径
docker build -t zrq/flask-hello-docker .
# 查看自定义的docker镜像
docker images ls 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值