Centos7 Docker
非root账户,所有命令前加 sudo
systemctl start docker
systemctl stop docker
systemctl status docker
systemctl restart docker.service
删除存储目录
rm -rf /etc/docker
rm -rf /run/docker
#删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
rm -rf /var/lib/dockershim
如果发现删除不掉,需要先 umount:
umount /var/lib/docker/devicemapper
查看docker安装包
yum list installed | grep docker
删除安装
yum remove xxxx
查看当前Centos7的内核版本(官方建议 3.10 以上,3.8以上貌似也可)
uname -r
使用 root 权限更新 yum 包(生产环境中此步操作需慎重,看自己情况,学习的话随便搞)
yum -y update
#yum -y update:升级所有包同时也升级软件和系统内核;
#yum -y upgrade:只升级所有包,不升级软件和系统内核
卸载旧版本
yum remove docker docker-common docker-selinux docker-engine
################################################################################################################
#参阅:https://cloud.tencent.com/developer/article/1701451
-
安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2 -
设置一个yum源
#阿里仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#中央仓库
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo -
选择docker版本并安装
#查看可用版本有哪些
yum list docker-ce --showduplicates | sort -r
#选择一个版本并安装:yum install docker-ce-版本号
yum -y install docker-ce-18.03.1.ce
#出现下列说明安装成功
#已安装:
#docker-ce.x86_64 0:18.03.1.ce-1.el7.centos
#作为依赖被安装:
#container-selinux.noarch 2:2.119.2-1.911c772.el7_8 pigz.x86_64 0:2.3.3-1.el7.centos
#完毕!
-
启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker -
配置国内镜像
vi /etc/docker/daemon.json
写入:
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”]
}
#重启docker
systemctl restart docker.service
###################################################
国内加速地址有:
Docker中国区官方镜像
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
ustc
https://docker.mirrors.ustc.edu.cn
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云容器 服务
https://cr.console.aliyun.com/
首页点击“创建我的容器镜像” 得到一个专属的镜像加速地址,类似于“https://1234abcd.mirror.aliyuncs.com”
##############################################################################################################
##############################################################################################################
##############################################################################################################
##############################################################################################################
参考:https://www.runoob.com/docker/docker-container-usage.html
关闭容器:
exit
查看所有容器:
docker ps : 查看当前运行的容器信息(上面的退出方式就会默认关闭容器)
docker ps -a : 查看关闭的容器
使用 docker start 启动一个已停止的容器:
docker start xxxxxxxx
docker restart xxxxxxxx
停止一个容器:
docker stop xxxx
进入一个容器:
docker attach xxxxxxxx
退出容器终端:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止
docker exec -it xxxxx /bin/bash
##更多参数说明请使用 docker exec --help 命令查看
如果要导出本地某个容器,可以使用 docker export 命令
docker export 1e560fca3906 > ubuntu.tar
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
此外,也可以通过指定 URL 或者某个目录来导入,例如:
docker import http://example.com/exampleimage.tgz example/imagerepo
删除容器
docker rm -f xxxxxxxx
-
获取镜像
如果我们本地没有 centos 镜像,我们可以使用 docker pull 命令来载入 centos 镜像:
docker pull centos
删除镜像:
docker images
docker rmi imagesId -
启动容器
以下命令使用 centos 镜像启动一个容器,参数为以命令行模式进入该容器
docker run -it centos /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
centos: centos 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit
- 后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -i -t -v /root/docker_test:/mnt/software --name mytest-docker centos /bin/bash
docker run -i -t -v /root/docker_test:/mnt/software 5d0da3dc9764 /bin/bash
docker start d48910dd318e
docker exec -it d48910dd318e /bin/bash
docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash
参数解析
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
/bin/bash:一旦容器启动,需要执行的命令,当前使用 “/bin/bash”, 表示启动后直接进bash shell
/root/software是宿主机器(Linux)上创建的一个文件夹;
/mnt/software是centos的容器里面的目录文件
这里挂载的意思就是 9f38484d220f 创建的容器访问 /mnt/software/ 目录下的文件就相当于访问 宿主机的 /root/software/下的文件,且两者文件夹里内容相同
创建一个容器,并挂载一个“盘”
docker run -i -t -v /root/docker_test:/mnt/software -p 8081:1443 --name mytest-docker4 centos /bin/bash
退出容器:exit
查看运行的容器 docker ps
查看关闭的容器 docker ps -a
启动容器:
docker start d48910dd318e
进入容器(使用exit退出容器不会关闭容器):
docker exec -it 755e80f9e4c3 /bin/bash
进入容器(使用exit退出会关闭容器)
docker attach 755e80f9e4c3
export JAVA_HOME=/etc/jdk8
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:
J
A
V
A
H
O
M
E
/
j
r
e
/
l
i
b
/
r
t
.
j
a
r
e
x
p
o
r
t
P
A
T
H
=
JAVA_HOME/jre/lib/rt.jar export PATH=
JAVAHOME/jre/lib/rt.jarexportPATH=PATH:$JAVA_HOME/bin