Docker 基础命令

1.安装docker
输入命令
yum list installed | grep docker —查看是否安装docker
输入命令
yum install docker -y ---- -y表示确认安装 如果不输入后边会提示是否安装
输入命令
Docker -v 查看是否安装成功

2.卸载docker
Yum remove docker -y 卸载docker 用命令yum list installed | grep docker 来查看已经安装的

3.启动docker
启动:systemctl start docker 或者 service docker start
停止:systemctl stop docker 或者 service docker stop
重启:systemctl restart docker 或者 service docker restart

查看进程
ps -ef |grep docker
4.查看docker 帮助命令
输入docker
查看某一个命令的用法
Dockert 某个命令 --help

5.Docker 运行机制

下载镜像
 通过官网https://hub.docker.com 下载所需要的镜像

这的 dcocker hub 就和 java 的maven 一样,属于仓库管理 ,dcocker 镜像 就是 jar

6.命令下载镜像命令
Docker pull 镜像名字:版本 —比如tomcat不需要版本号就去掉版本和冒号,不加默认下载最新版本
运行镜像
Docker run 镜像名字 —比如 tomcat 这是前台运行 后台运行 需要加一个参数
Docker run -d tomcat

查看本地已经有的镜像
Docker images
搜索 镜像命令
Docker search 镜像名 ----比如tomcat

关闭镜像
Ctrl + c
删除镜像

docker rmi 镜像名字 --这里注意是rmi不是rm -i表示images容器
查看当前运行的容器
Docker ps
关闭容器命令
Docker stop 容器名 或者容器id – Docker ps 查看id 容器名

7 .linux tomact 端口与docker 里的tomact 映射

第一种方式
Docker run -d -p 8080:8080 tomcat
—这里的- p 参数是prot的简称 第一个8080代表linux 的 第二个代表docker 的端口
这条命令表示在容器里启动并 映射到docke容器这样就可以使用其他浏览器访问到tomact
第二种方式

输入命令: docker run -d -p dockert.io/tomact 这里的dockert.io/tomac是镜像的名字
可以使用命令 docker images 查看有哪些镜像,或者用镜像的id也可以
8.进入docker 容器

输入命令: docker exec -it 容器id bash
还可以用: docker inspect 容器id 或者容器名称
----这样子可以查看到容器更多信息
退出容器 :exit

9.docker主要核心组件

10.停止所有容器
查询当前在运行的容器
docker ps -q --这里参数-q只会显示当前运行容器的id
停止所有容器
Docker stop $(docker ps -p)
11.删除容器
删除单个容器
Docker rm 容器id或者容器名字 ----(用 docker ps 查看进程及容器id 和名字 )

删除全部容器
Docker rm $(docker ps -aq)
停止容器并删除容器语句
Docker stop $(docker ps -p) & Docker rm -f $(docker ps -aq)
—这里-a参数表述显示所有容器包括没有运行的容器
-f表示强制删除运行的容器
12.redis 连接工具
Redis desktop manager

国内镜像下载地址:

阿里云仓库docker: https://dev.aliyun.com

13.docker 使用实列
Mysql 安装
Docker pull mysql — 下载mysql

启动mysql
Docker run -p 3306:3306 -e msql_database=workdb -e mysql_root_password=123456 -d mysql
---- 语句说明:启动mysql时设置端口映射 指定数据库名字和 数据库密码,并在后台启动
------ e 参数代表指定 环境变量

进入容器
Docker exec it 容器名字或者容器id bash

查看mysql 里目录结构
ls -l
查看mysql 安装目录用
ich mysql

14.登录mysql
mysql - u root -p
15.显示数据库
show database
use 数据库名
show tables --显示当前库下存在那些表
16.修改数据库密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Aa123456’;
17.添加远程访问
grant all privileges on . to ‘root’@‘%’ identified by ‘123456’ with grant option;


create user ‘用户名@’%’ identifed with mysql_native_password by ‘123456’;
—创建一个用户,并设置密码
grant all privilegs on . to ‘用户名@’%’; --这里授权给他全部权限

立即生效命令:flush privileges;
exit:退出mysql 命令行

18.将linux文件拷到docker 某个文件或者某个容器文件下
docker cp test.html(这里是文件名) 容器id:需要考到的路径

自定义镜像

1.自定义tomach镜像
定义Dockerfile文件:
----使用 vim dockerfile 创建一个名字为dockerfile 的文件,将下边自定义的内容拷进来

FROM jdk1.8.0_121 —继承这个镜像(表示从什么容器开始就作为基础镜像)
MAINTAINER wkcto —标识这个镜像的作者
ADD apache-tomcat-8.5.24.tar.gz /usr/local —将apache-tomcat-8.5.24.tar.gz压缩包拷到 /usr/local/ 路径下
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.24 --配置CATALINA_HOME 环境变量
ENV PATH SPATH :docker 查看启动参数 查看docker启动命令_容器CATALINA_HOME/bin --配置PATH SPATH 环境变量
EXPOSE 8080 --导出端口
CMD /usr/local/apache-tomcat-8.5.24/bin/catalina.sh run —运行启动tomcat
构建镜像:docker build -t tomcat-8.5.24 . —点不能少
运行镜像: docker run-d -p 8080:8080 ab41b5f48256

2.自定义JDK镜像
FROM centos:latest --继承这个镜像(表示从什么容器开始就作为基础镜像)
MAINTAINER wkcto —标识这个镜像的作者
ADD jdk-8u121-linux-x64.tar.gz/usr/local
----将jdk-8u121-linux-x64.tar.gz 压缩包拷到usr/local路径下
ENV JAVA_HOME /usr/local/jdk1.8.0_121 —配置环境变量 env表示配置意思
ENV CLASSPATH SIAVA_HOME/lib/dt.jar:SIAVA_HOME/lib/tools.jar
—配置环境变量 env表示配置意
ENV PATH SPATH.:SJAVA_HOME/bin —配置环境变量 env表示配置意思

CMD java -version —查看jdk 版本信息

使用 vim dockerfile 创建一个名字为dockerfile 的文件,将上边自定义的内容拷进来

构建镜像: docker build -t jdk1.8.0_121 . (自定义的镜像名字) — -t表示指定一个标签,注意最后有一个点不能少,表示当前目录下有个 dockerfile文件

运行镜像: docker run -d ac84bde53958 —使用 docker images 查看镜像id

3.自定义mysql
定义 Dockerfile 文件:
FROM centos:centos7 —继承这个镜像
MAINTAINER xh --镜像的作者名
RUN yum install -y mysql-server mysql —运行安装一个mysql 的服务端 和客户端 -y 表示是 确认安装
RuN /etc/init.d/mysqld start &&\ ----\表示连接符 这里启动msql服务
mysql -e "grant all privileges on *.*to ‘root’@‘%’ identified by '123456’WITHGRANT OPTION ;’’&&\ ----这里添加授权将root用户授权为任何ip都可以访问 ,%表示任何ip
mysql -e “grant all privileges on *.” to ‘root’@‘localhost’ identified by '123456’wITH GRANT OPTION ;’’&&\ ------这里添加授权将root用户授权为本机ip都可以访问 ,一般都不设置这个
mysql-uroot -p123456-e “show databases;” 登录数据库,并显示有哪些库

EXPOSE 3306 —导出端口
CMD /usr/bin/mysqld_safe
构建镜像: docker build -t mysql . (自定义的镜像名字) — -t表示指定一个标签,注意最后有一个点不能少,表示当前目录下有个 dockerfile文件

运行镜像: docker run -d-p 3306:3306 09ce279d92df

4.自定义redis
定义Dockerfile文件: 使用命令 vim Dockerfile
FROM centos:latest
MAINTAINER wkcto
RUN yum install -y epel-release && yum install -y redis && yum install -y net-tools
----先安装 epel-release 这是redis 的依赖库 ,在安装 redis ,在安装一个网络包
EXPOSE 6379 —配置端口号
CMD /usr/bin/redis-server --protected -mode nol ----启动redis服务,并关闭保护模式
构建镜像:docker build -t redis . (自定义的镜像名字) — -t表示指定一个标签,注意最后有一个点不能少,表示当前目录下有个 dockerfile文件
运行镜像: docker run -d-p 6379:6379 390583cf0531

5.自定义自己写好项目打成jar包打成镜像
定义Jar包程序Dockerfile文件:命令 vim Dockerfile 把下列代码拷进来
FROM java —继承于Java
MAINTAINER xh —自定义作者名字
ADD springboot-web-1.0.0.jar /opt ----将这个jar项目放到 容器的opt目录下
RUN chmod +x /opt/springboot-web-1.0.0.jar – chmod +x 这个表示可以执行的权限
CMD java -jar /opt/springboot-web-1.0.0.jar — java -jar 这个是java运行 jar的命令
构建镜像: docker build -t springboot-web-jar . —点不能少
运行容器: docker run -d -p 8080:8080 ac84bde53958

6.自定义war包项目打包成镜像
定义War包程序Dockerfile文件 命令 vim Dockerfile 把下列代码拷进来
FROM tomcat-9 —继承这个
MAINTAINER wkcto
ADD springboot-web-1.0.0.war /usr/local/apache-tomcat-8.5.24/webapps
-----将war包放在tomcat的webapps目录下
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.24/bin/catalina.sh run --这里启动 catalina.sh文件就启动了tomcat
构建镜像: docker build -t springboot-web-war . —点不能少
运行容器: docker run -d -p 8080:8080 ac84bde53958

-----注意war包,在浏览器上访问网站时候,项目名需要改成war包名 springboot-web-1.0.0

1.配置官方镜像加速 docker hub 网站加速
(1)进入这个文件路径/etc/docker/daemon.json
(2)打开daemon.json 把下列代码添加进去
{“registry-mirrors”: [“https://gg3gwnry.mirror.aliyuncs.com”]}
----这里需要注意下每个人的加速地址可能不同,登录阿里云后点开镜像加速就可以看到了

将已经存在的镜像保存
Docker commit 容器id 自定义镜像名
比如:
Docker commit ddddef mysql
-----因为容器一旦关闭以后,我们操作的数据就会清掉,比如数据库里我们添加了些表,一但停止容器再次启动我们之前做的数据就不存在,所以可以使用这命令来保存容器

备注:
当然docker在实际使用时候,启动时命令会有挂载,或者带参数启动。

docker run -d -p 8083:80 --restart always --name xxxx
-v /usr/local/volumes/hlj-bidding-portal-platform-web/app/volumes/config/config.js:/usr/share/nginx/html/config/config.js
-v /usr/local/volumes/hlj-bidding-portal-platform-web/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf
-v /usr/local/volumes/hlj-bidding-portal-platform-web/nginx/nginx.conf:/etc/nginx/nginx.conf
-v /usr/local/volumes/hlj-bidding-portal-platform-web/nginx/log:/var/log/nginx
XXX镜像:版本