`

Centos7 + docker学习

 
阅读更多

1.查看linux版本信息

 

[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@docker ~]# uname -r
3.10.0-693.11.6.el7.x86_64

 2.安装docker

 

 

[root@docker ~]# yum install -y docker   ==》安装
[root@docker ~]# systemctl  start docker   ==》启动
[root@docker ~]# systemctl  status docker  ==》查看状态信息
[root@docker ~]# systemctl enable docker  ==》加入开机自启动
[root@docker ~]# docker --version  ==》简略版本信息
Docker version 1.13.1, build dded712/1.13.1 
[root@docker ~]# docker version    ==》详细版本信息
Client:   ==》客户端信息
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-68.gitdded712.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      dded712/1.13.1
 Built:           Tue Jul 17 18:34:48 2018
 OS/Arch:         linux/amd64
 
Server:  ==》服务端信息
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-68.gitdded712.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      dded712/1.13.1
 Built:           Tue Jul 17 18:34:48 2018
 OS/Arch:         linux/amd64
 Experimental:    false

 3.docker镜像管理

 3.1search镜像

[root@docker ~]# docker search centos:7

 3.2pull镜像

[root@docker ~]# docker pull centos:6

 3.3查看镜像

[root@docker ~]# docker images

 3.4导出镜像

[root@docker ~]# docker save centos:6 >/opt/centos.tar.gz  ==》导出镜像
[root@docker ~]# docker load  </opt/centos.tar.gz  ==》导入镜像

 3.5删除镜像

[root@docker ~]# docker rmi $ IMAGE ID/$TAG

 3.6利用镜像创建容器

[root@docker ~]# docker run -it centos:6 /bin/bash

4.容器管理

4.1新建容器

[root@docker ~]# docker run centos:6 /bin/echo "hehe" =》与在本地执行/bin/echo "hehe"一样
[root@docker ~]# docker run --name mydocker -it centos:6 /bin/bash =》启动一个bash终端,允许用户进行交互
--name:给容器定义名称
-i:让容器的标准输入保持打开
-t:Docker分配一个伪终端并绑定到容器的标准输入上

 4.2启动/停止容器

[root@docker ~]# docker start $NAMES/$CONTAINER ID
[root@docker ~]# docker stop $NAMES/$CONTAINER ID
[root@docker ~]# docker ps  ==》列出已经启动的容器
[root@docker ~]# docker ps –a  ==》列出所有容器,包括未启动的

 4.3删除容器

[root@docker ~]# docker rm $CONTAINER ID  ==》删除已经停止的容器
[root@docker ~]# docker rm -f  $CONTAINER ID  ==》删除正在运行的容器

 

 5.进入容器

5.1 attach命令进入

[root@docker ~]# docker attach $CONTAINER ID
注意:该命令是系统自带的,并且启用attach命令有时候并不是特别的方便,当多个窗口同时attach到一个容器的时候,多有的窗口都会同步显示,当某个窗口因某个命令堵塞时,其他窗口也就无法再执行命令了,在退出容器时,该容器会自动停止

5.2 nsenter命令进入

[root@docker ~]# yum install -y util-linux  ==》安装nsenter
[root@docker ~]# docker inspect --format "{{.State.Pid}}" test ==》找到容器进程ID
[root@docker ~]# nsenter -t 19245 -u -i -m –p   ==》进入容器
-t, --target <pid>     target process to get namespaces from
指定容器的进程ID
-m, --mount[=<file>]   enter mount namespace
进入到mount namespace空间中
-u, --uts[=<file>]     enter UTS namespace (hostname etc)
进入到UTS namespace空间中
-i, --ipc[=<file>]     enter System V IPC namespace
进入到System V IPC namespace空间中
-n, --net[=<file>]     enter network namespace
进入到network namespace空间中
-p, --pid[=<file>]     enter pid namespace
进入到pid namespace空间

 5.3 编写脚本快速进入容器

[root@docker scripts]# vim docker_in.sh
#/bin/bash
 
PID=$(docker inspect -f "{{.State.Pid}}" $1)
nsenter -t $PID -m -u -i -n -p

 

 原文:http://blog.51cto.com/lzhnb/2153225

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics