前言:
本篇centos安装在虚拟机下,默认使用root用户。centos服务器安装转载一篇文章https://blog.csdn.net/qq_29940863/article/details/89840245
一、环境准备
1、查看服务器版本
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
2、关闭selinux
sestatus -v
vim /etc/selinux/config
SELINUX=disable
3、关闭防火墙
systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld
4、重启
reboot
二、安装docker
1、更新yum
yum update
2、安装需要包
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
3、安装docker
yum install docker-ce
4、更改docker镜像源
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}
这里最好使用阿里的镜像服务
https://homenew.console.aliyun.com/
搜索 容器镜像服务
镜像中心 > 镜像加速器(有详细配置教程)
5、启动docker
systemctl start docker
systemctl enable docker
docker -v
三、docker命令
1、查看帮助
docker --help
查看详细
docker inspect 镜像ID|镜像名|容器ID|容器名
docker stats 查看资源使用情况
2、查看已安装镜像
docker images
3、搜索镜像
docker search centos
docker search mysql
4、拉取镜像
docker pull centos/mysql-57-centos7
docker pull centos:7 #':7'表示版本,不加拉取最新的
5、删除镜像
docker rmi 镜像ID
docker rmi `docker image -q` #删除全部镜像
6、查看容器
docker ps #查看运行中容器
docker ps -a #查看所有容器
docker ps -f status=exited #查看停止容器
7、容器操作
docker run -it --name=mycentos centos:7 /bin/bash
docker run -di --name=mycentos2 centos:7
docker exec -it mycentos2 /bin/bash
-i 运行
-t 交互式
-d 守护式
--name 命名
-p 端口映射
-v 目录映射
docker stop|start 容器ID或名称
docker cp anaconda-ks.cfg mycentos2:/home
docker cp mycentos2:/home/a.cfg .
docker run -id --name=mycentos3 -v /root/dh/mytest:/usr/local/mytest centos:7 #宿主机目录:docker目录
docker inspect mycentos3
docker inspect --format '{{.NetworkSettings.IPAddress}}' mycentos3
docker rm mycentos3
docker run -id --name=mysqltest -p 33306:3306 -e MYSQL_ROOT_PASSWORD=111 centos/mysql-57-centos7
四、docker备份迁移
1、容器备份为镜像
docker commit mycentos3 mycentos3_image
2、镜像保存为本地文件
docker save -o test.tar mycentos3_test # -o output
3、本地文件还原为镜像
docker rmi mycentos3_test
docker load -i test.tar # -i input
五、Dockerfile
1、创建dockerfile目录
mkdir /usr/local/dockerjdk
cd /usr/local/dockerjdk
下载jdk-8u121-linux-x64.tar.gz至此目录
2、编辑Dockerfile文件
vim Dockerfile
FROM centos:7 #定义基础镜像
MAINTAINER fxyz #声明创建者
WORKDIR /usr #定义工作目录
RUN mkdir /usr/local/java #执行命令
ADD jdk-8u121-linux-x64.tar.gz /usr/local/java #本地上传(自动解压)
COPY jdk-8u121-linux-x64.tar.gz /usr/local/java #本地上传(不自动解压)
ENV JAVA_HOME /usr/local/java/jdk1.8.0_121 #配置环境
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
:wq
3、使用Dockerfile创建镜像并查看
docker build -t='jdk1.8' . # .表示Dockerfile的路径
docker images
docker run -it --name=jdk jdk1.8 /bin/bash
echo $JAVA_HOME
java -version
五、docker私有镜像
1、拉取私有仓库镜像
docker pull registry
2、启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
3、验证
浏览器访问http://localhost:5000/v2/_catalog
返回{"repositories":[]}
4、添加信任
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["192.168.9.141:5000"]
}
systemctl restart docker
docker start registry
5、上传
docker tag mycentos3_test 192.168.9.141:5000/mycentos3_test
docker images
docker push 192.168.9.141:5000/mycentos3_test
浏览器访问http://localhost:5000/v2/_catalog
返回{"repositories":["mycentos3_test"]}
6、从其它服务器拉取
重复4
docker pull 192.168.9.141:5000/mycentos3_test
六、补充
1、docker参数
--rm 容器退出后随之将其删除
-e 指定key=value传递到环境变量
2、更改docker目录
https://www.cnblogs.com/bigberg/p/8057807.html
3、docker停止所有容器
docker stop $(docker ps -aq)
4、转载
https://cloud.tencent.com/developer/column/3110
5、清理慎用
docker system prune
6、privileged参数
用法
docker run --name=test --privileged=true image:version /bin/bash
默认为false。
当为true时使容器的root权限拥有宿主机的root权限,
否则容器的root是宿主的一个普通user。
最直观的变化是为true时,可以在容器里使用mount命令。
7、制作镜像注意事项
配置环境变量最好放到.bashrc下,
/etc/profile文件启动容器时可能会被覆盖。