Docker介绍与安装,常用命令

      docker做为微服务实现的重要的组成部分,已经火力好几年了,Docker容器技术如何简化应用程序的开发与部署、促进最佳实践并催生新一代以应用为基础的微服务机制。大规模整体性云应用程序开发已经步入绝路。如今它开始被微服务架构所取代,其特色在于将大型应用程序——及其全部内置功能——拆分成更小的、目的驱动型服务,并通过通用REST API实现彼此之间的通信。

这边简单回顾一下docker 入门和基础实践

Docker简介

        Docker项目的目标是实现轻量级的操作系统虚拟化解决方案,让用户不需要关心容器的管理,使得操作更为简便,用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单即Docker为应用的开发和部署提供了“一站式”的解决方案

        

Docker安装

# intall yum-config-manager
 
yum -y install yum-utils
 
# import
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 
 
# updata repo
yum makecache
 
# install 
 
yum install docker-engine-1.13.1-1.el7.centos.x86_64

 

update docker setting

 

# vi setting
 
vi /usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS$DOCKER_DNS_OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

 
 

 

# habor
 
cat >> /usr/lib/systemd/system/docker.service.d/docker-options.conf << EOF
[Service]

Environment="DOCKER_OPTS=--insecure-registry docker-registry.ehealthinsurance.com:8443--graph=/opt/docker "
EOF

 
 

 

# start docker 
systemctl daemon-reload
systemctl start docker



Docker影响

        docker引领容器时代,是服务架构一次升华,他有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。


   docker 常用命令整理如下:

  • 容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]

  • 容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]

  • 容器rootfs命令 — docker [commit|cp|diff]

  • 镜像仓库 — docker [login|pull|push|search]

  • 本地镜像管理 — docker [images|rmi|tag|build|history|save|import]

    其他命令 — docker [info|version]

其中:

               使用 docker images 显示本地已有的镜像。

               拉去image:   docker pull

               推送image :   doker push

               删除image:    docker rmi

               运行docker :  docker run

               docker run 命令参数较多,可以通过以下命令docker run --help查看参数帮助内容,以下对几个常用及关键参数解释一下:

  1. [-p与-P参数] -P:随机映射容器的所有暴露端口给主机 -p: 映射容器端口给主机

  2. [--env参数] 设置环境变量

  3. [-v 参数] 挂载一个数据卷

  4. [-entrypoint参数] 覆盖镜像的默认的入口指令

  5. [--name参数] 给容器指定一个名称

  6. [--link参数] 连接另外的容器


               可以利用 docker start [containerId|containerName] 命令,直接将一个已经终止的容器启动运行。

               docker restart 命令会将一个运行态的容器终止,然后再重新启动它。

更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参 数来实现。

               进入容器docker exec -it [containerId|containerName] /bin/bash

要获取容器的输出信息,可以通过 docker logs [containerId|containerName] 命令。

$sudo docker ps 查看正在运行的容器

$sudo docker ps -a 查看所有的容器状态

               可以使用 docker rm 来删除一个处于终止状态的容器。如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

删除所有容器 docker rm $(docker ps –a –q)

具体使用如下

查看正在运行的容器

docker ps
docker ps -a为查看所有的容器,包括已经停止的。


查看容器日志

docker logs -f <容器名orID>


删除所有容器

docker rm $(docker ps -a -q)

删除单个容器

docker rm <容器名orID>

停止、启动、杀死一个容器

docker stop <容器名orID>
docker start <容器名orID>
docker kill <容器名orID>

查看所有镜像

docker images

删除所有镜像

docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)

运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例

docker run --name test -p 8003:80 -p 8023:22 -d -v /var/test/files:/test/files -v /var/test/mysql:/var/lib/mysql mychcorp/test

一个容器连接到另一个容器

docker run -i -t --name sss -d -link mmysql:db   mychcorp/test-server
test

容器连接到mmysql容器,并将mmysql容器重命名为db。这样,sonar容器就可以使用db的相关的环境变量了。

拉取镜像

docker pull <镜像名:tag>

docker pull mychcorp/test


构建自己的镜像

docker build -t <镜像名> <Dockerfile路径>

如Dockerfile在当前路径:

docker build -t xx/xxx .

重新查看container的stdout

# 启动top命令,后台运行$ ID=$(sudo docker run -d ubuntu /usr/bin/top -b)# 获取正在running的container的输出$ sudo docker attach $ID
top - 02:05:52 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    373572k total,   355560k used,    18012k free,    27872k buffers
Swap:   786428k total,        0k used,   786428k free,   221740k cached
^C$
$ sudo docker stop $ID

后台运行(-d)、并暴露端口(-p)

docker run -d -p 127.0.0.1:301:22 centos7

从container中拷贝文件出来

sudo docker cp 7bb0e258aefe:/etc/debian_version .

拷贝7bb0e258aefe中的/etc/debian_version到当前目录下。
注意:只要7bb0e258aefe没有被删除,文件命名空间就还在,可以放心的把exit状态的container的文件拷贝出来


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值