Docker安装 基本命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huaishu/article/details/88658495

早些年使用Redmine、Jenkins,安装是一个非常麻烦的工作,更别说Oracle等大应用安装,后来找到简便安装方式,bitnami 网站把各类应用封装在一个安装包中,是软件安装非常便捷,随后Docker的出现,让人们开始了解容器,随之而来的容器编排k8s。

刚接触电脑时候,我们会安装不同的操作系统,一台电脑如何才能安装多个操作系统,vmware是非常好用的虚拟机软件,在软件部署过程中实体机不够,可以通过VM标准化实施部署流程。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC) 等技术。
在 LXC 的基础上 Docker 进行了进一步的封装, 让用户不需要去关心容器的管理, 使得操作更为简便。 用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

Docker基本概念

镜像 可以用来创建Docker容器。

容器 从镜像创建的运行实例。

仓库 集中存放镜像文件的场所。

安装

 yum install -y docker-ce

systemctl start docker

chkconfig docker on

#卸载docker
yum remove docker docker-common docker-selinux docker-engine -y
#安装yum
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce -y

基本命令

docker pull 
#查看镜像
docker images
#创建运行
docker run --name mysql_db -p 3307:3306  -v /home/docker/mysql/logs:/data/logs/mysql -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/conf/:/etc/mysql/conf.d -e MYSQL_DATABASE=opencart -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#镜像进程
docker ps -a
#启动关闭容器
 docker stop mysql_db
 docker start mysql_db
#容器日志 
docker logs mysql_db
#命令来修改镜像的标签
docker tag 

Dockerfile 来创建镜像

FROM ubuntu:14.04
MAINTAINER Docker Newbee <[email protected]>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

载入镜像 docker load 

移除本地镜像 docker rmi 

sh脚本

 docker exec -it mysql_db /bin/bash

命令

docker run -t -i -d ubuntu:14.04 /bin/bash 
-t 选项让Docker分配一个伪终端(pseudo-tty) 并绑定到容器的标准输入上
-i 则让容器的标准输入保持打开
-d 守护态运行
在使用 -d 参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使用docker attach 命令或 nsenter 工具等。

导入容器快照   docker import URL

删除容器  docker rm  dockerName

仓库搜索   docker search centos

私有仓库  

#创建私有仓库
docker run -d  --restart=always --name registry  -v  /opt/docker/registry:/tmp/registry  -p 5000:5000 registry
#tag
docker tag mysql 192.168.1.101:5000/mysql
docker push 192.168.1.101:5000/mysql

 报错:Get https://192.168.1.101:5000/v2/: http: server gave HTTP response to HTTPS client

vim  /usr/lib/systemd/system/docker.service 
修改ExecStart=/usr/bin/dockerd  --insecure-registry 192.168.1.101:5000 

重启docker

systemctl daemon-reload
systemctl restart docker

查看

http://192.168.1.101:5000/v2/_catalog
http://192.168.1.101:5000/v2/image_name/tags/list

docker run \
-e SETTINGS_FLAVOR=s3 \
-e AWS_BUCKET=acme-docker \
-e STORAGE_PATH=/registry \
-e AWS_KEY=AKIAHSHB43HS3J92MXZ \
-e AWS_SECRET=xdDowwlK7TJajV1Y7EoOZrmuPEJlHYcNP2k4j49T \
-e SEARCH_BACKEND=sqlalchemy \
-p 5000:5000 \
registry

Docker 数据管理

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:ro

#ro 只读
#创建卷 
docker volume create portainer_data
#共享卷
docker run -d --name db3 --volumes-from db1 training/postgres

#备份
docker run --volumes-from mysql_db -v $(pwd):/backup mysql tar cvf /backup/backup.tar /var/lib/mysql

#恢复
docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar

注意:使用 --volumes-from 参数所挂载数据卷的容器自己并不需要保持在运行状态

Docker网络

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。 
支持的格式有ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 

docker port docker_name 5000

容器互联

 docker run -d -P --name web --link db:alias_name training/webapp python app.py

网络

#创建命令 
docker network create --driver bridge isolated_nw 
#检视创建的网络信息
docker network inspect isolated_nw 

-b BRIDGE or --bridge=BRIDGE --指定容器挂载的网桥
--bip=CIDR --定制 docker0 的掩码
-H SOCKET... or --host=SOCKET... --Docker 服务端接收命令的通道
--icc=true|false --是否支持容器之间进行通信
--ip-forward=true|false --请看下文容器之间的通信
--iptables=true|false --禁止 Docker 添加 iptables 规则
--mtu=BYTES --容器网络中的 MTU 

查看网桥 brctl show 

查看NAT 规则  iptables -t nat -nL

管理工具

progrium/consul

Docker 可视化工具 portainer/portainer

猜你喜欢

转载自blog.csdn.net/huaishu/article/details/88658495