docker笔记
1、基本命令
查看本地镜像: docker images
搜索镜像: docker search centos
搜索镜像并过滤是官方的: docker search --filter "is-official=true" centos
搜索镜像并过滤大于多少颗星星的: docker search --filter stars=10 centos
下载centos7镜像: docker pull centos:7
修改本地镜像名字(小写): docker tag centos:7 mycentos:1
本地镜像的删除: docker rmi centos:7
查看正在运行的容器:docker ps
查看所有的容器:docker ps -a
运行容器:docker run -itd centos:7
重启容器:docker restart ID
运行容器并命名:docker run -itd --name=xxx centos:7
停止容器:docker stop ID或命名
删除容器(需先停止容器):docker rm ID或命名
强制删除容器:docker rm -f ID或命名
查看容器详细信息:docker inspect ID或命名
进入容器:docker exec -it ID或命名 /bin/bash(解释器)
退出容器:exit
停止正在运行的所有容器:docker stop $(docker ps -a -q)
启动所有容器:docker start $(docker ps -a -q)
复制文件到容器里:docker cp (最好是绝对路径) ID或命名:(目标路径) => docker cp /root/123.txt ID或命名:/home/
从容器复制到宿主机:docker cp ID或命名:(目标路径) (最好是绝对路径) => docker cp ID或命名:/home/123.txt /root/
2、commit构建镜像
安装ifconfig的包:yum install -y net-tools
commit镜像:docker commit -a "ximen" -m "123" a5b2277d98f6 mycentos:v1
(docker commit -a "作者" -m "描述相关信息" ID 命名版本号)
3、Dockerfile构建镜像
编辑Dockerfile
# this is a dockerfile注释声明这是一个dockerfile文件
FROM 基于什么镜像进行构建
MAINTAINER 作者 邮箱
RUN 执行一条命令
WORKDIR 设置工作路径
COPY 相对路径 目标路径
# this is a dockerfile
FROM centos:7
MAINTAINER ximen 123@qq.com
RUN echo "正在构建镜像!!!"
WORKDIR /home/ximen
COPY 123.txt /home/ximen
RUN yum install -y net-tools
执行dockerfile命令:docker build -t mycentos:v2 .
(docker build -t 命名:版本号 .是当前目录下的dockerfile文件)
4、配置Java网站环境
一、配置jdk
解压jdk压缩包:tar -xf jdk-8u161-linux-x64.tar.gz
文件夹移动并改名为jdk:mv jdk1.8.0_161 /usr/local/jdk
编辑环境变量:vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
更新环境变量文件:source /etc/profile
二、启动Tomcat
解压Tomcat:tar -xf apache-tomcat-9.0.41.tar.gz
文件夹移动并改名为tomcat:mv apache-tomcat-9.0.41 /usr/local/tomcat
Tomcat:/usr/local/tomcat/bin/catalina.sh run
查看Tomcat启动:ps -ef | grep tomcat
三、查看关闭防火墙
查看防火墙:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
四、dockerfile
FROM centos:7
ADD jdk-8u161-linux-x64.tar.gz /usr/local/jdk /usr/local
RUN mv /usr/local/local/jdk1.8.0_161 /usr/local/jdk
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-9.0.41.tar.gz /usr/local
RUN mv apache-tomcat-9.0.41 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
5、启动环境容器
普通运行:docker run -itd --privileged -p 8989:8080 mycentos:v2 init
6、Nginx
安装Nginx:yum install -y nginx
正常启动Nginx:systemctl start ngnix.service
前台启动Nginx:/usr/sbin/nginx -g "daemon off;"
运行容器:docker run -itd --privileged -p 80:80 mycentos:v3 init
关闭防火墙:systemctl stop firewalld.service
dockerfile
FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum install -y nginx
EXPOSE 80
7、Redis
redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境
进入/usr/local目录下
安装gcc-c++:yum install gcc-c++
要使用wget下载redis压缩包,就先安装wget:yum install wget
解压redis压缩包:tar -xf redis-4.0.9.tar.gz
进到redis-4.0.9文件夹后执行命令编译:make
再执行安装命令:make PREFIX=/usr/local/redis install
复制redis.conf文件到/usr/local/redis/bin目录:cp ./redis.conf /usr/local/redis/bin/
编辑redis.conf配置文件:vi /usr/local/redis/bin/redis.conf
搜索protected-mode的位置::/protected-mode
按a进入编辑模式,把protected-mode的yes改成no
按esc退出编辑模式,再搜索bind的位置::/bind 127.0.0.1
按a进入编辑模式,在bind 127.0.0.1前加一个#号注释掉
按esc退出编辑模式,再输入:wq保存退出
启动redis:/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
运行容器:docker run -itd --privileged -p 6380:6379 mycentos:v4 init
关闭防火墙:systemctl stop firewalld.service
启动redis客户端:/usr/local/redis/bin/redis-cli -p 6380
通过ip链接redis,先查看ip:docker inspect ID
IPAddress为ip地址
通过ip连接:/usr/local/redis/bin/redis-cli(宿主机redis地址) -h IP -p 6379(容器redis端口)
8、MySQL
拉取MySQL镜像:docker pull mysql:5.7
运行MySQL容器:docker run -itd --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
设置编码:docker exec -it ID env LANG=C.UTF-8 /bin/bash
进入容器:docker exec -it ID /bin/bash
进入容器后可以查看字符编码:echo $LANG
登陆MySQL:mysql -uroot -proot