docker命令操作及应用

一、安装docker:

    删除: yum -y remove docker

    安装:yum -y install docker

    启动:systemctl start docker (centos7命令)

    开机自启动:systemctl enable docker

   https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

二、Docker镜像:

    查看已经拉取的镜像:docker images

    搜索镜像:docker serach xxx

    拉取镜像

            1.从 docker hub 拉取 

           Docker Hub 的网址:https://hub.docker.com

           命令:docker pull centos:7

            Docker Hub 是 docker 默认的公用 Registry,不过缺点是国内下载会比较慢

          2.从 ustc 拉取(建议使用)

            在宿主机器编辑文件(centos7 不支持 vim 命令,但是支持 vi 命令): 

            vi /etc/docker/daemon.json         

            请在该配置文件中加入(没有该文件的话,请先建一个):  

            {  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

            最后,需要重启 docker 服务

            systemctl restart docker

            之后再使用 pull 命令拉取镜像,这时候是从 ustc 获取镜像,而且速度杠杠的。 

            docker pull centos:7

    删除镜像:

        1.删除指定镜像 :

            docker rmi repository:tag 

            docker rmi imageID

        2.删除所有镜像:

            docker rmi $(docker images -q) 


三、Docker容器

        创建并运行容器

        创建容器命令:

            docker run 

        创建容器常用的参数说明: 

             -i:表示运行容器

             -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。

             --name :为创建的容器命名。

             -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。

             -d:在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会 自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。

             -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射

        以交互方式运行容器: 

        docker run -i -t --name 容器名称 repository:tag /bin/bash docker run -it --name 容器名称 imageID /bin/bash

        以守护进程方式运行容器: 

        docker run -di --name 容器名称 repository:tag docker run -di --name 容器名称 imageID

注意 :通过 run创建并进入容器之后 ,如果使用 exit命令 退 出 容 器 ,则 容 器 停 止 。

再次进入该容器 , 先使用 start启动容器 , 再 使用 exec/attach命令 进入容器 。

        启动容器

        docker start  容器名称或者容器 ID

        进入容器

            进入正在运行的容器的命令如下:docker exec -it容器名称或者容器 ID /bin/bash

                                                                  docker attach容器名称或者容器 ID

            两者之间的区别 :attach 进入容器之后 , 如果使用 exit退出容器 , 则容器停止 。

                                         exec进入容器之后 , 使用 exit退出容器 , 容器依然处于运行状态 。

        查看容器

            docker ps :查看正在运行的容器 

            docker ps -a:查看历史运行过的容器 

            docker ps -l:查看最近运行过的容器

        停止容器

            docker stop容器名称或者容器 ID

        删除容器

            删除指定容器:

                docker rm 容器名称或者容器 ID

            删除所有容器: 

                docker rm ‘docker ps -a -q’ 

                docker rm $(docker ps -a -q)

        复制文件

            docker cp 源文件 目标文件

            比如 :docker cp /root/boot.war  my-centos:/usr/local/

            说明 :/root/boot.war是宿主机器的路径

                        my-centos是容器的名称

                        /usr/local/ 是容器内的路径

            注意:源文件可以是宿主机器也可以是容器中的文件,同样,目标文件可以是容 器也可以是宿主机器的文                          件。

四、Docker 应用 

    MySQL 部署

        5.1.1 拉取 MySQL 镜像

            docker pull mysql:5.6

            查看镜像 docker images

        5.1.2 创建 MySQL 容器

            docker run -di --name kkb_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.6 

             docker run -di --name mysql57 -p 3333:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

            -p 代表端口映射,格式为  宿主机映射端口:容器运行端口 -e 代表添加环境变量                                  MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码

            外挂数据和配置文件

            docker run --name mysql5.7 -p 33333306 -v/data/MySQL/datadir:/var/lib/mysql -v             /data/MySQL/conf.d:/etc/mysql/conf.d -eMYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

        5.1.3 进入 MySQL 容器,登陆 MySQL 

            进入 mysql 容器 docker exec -it kkb_mysql /bin/bash 登陆 mysql mysql -u root -p

        5.1.4 远程登陆 MySQL

        5.1.5 查看容器 IP 地址

            我们可以通过以下命令查看容器运行的各种数据 docker inspect kkb_mysql 运行效果如下:

            我们可以看到我们的数据库服务器的 IP 是 172.17.0.2 

    tomcat 部署

5.2.1 拉取 tomcat 镜像

docker pull tomcat:7-jre7

5.2.2 创建 tomcat 容器

创建容器 -p 表示地址映射 docker run -di --name=kkb_tomcat -p 9000:8080 tomcat:7-jre7

Nginx 部署

5.3.1 拉取 Nginx 镜像

docker pull nginx

5.3.2 创建 Nginx 容器

docker run -di --name=kkb_nginx -p 9080:80  nginx /bin/bash

/usr/sbin/nginx

5.3.3 测试 Nginx

浏览器地址栏输入: http://192.168.247.135 

Redis 部署

5.4.1 拉取 Redis 镜像

docker pull redis

5.4.2 创建 Redis 容器

docker run -di --name=kkb_redis -p 16379:6379 redis

连接

docker exec -it redis16379 redis-cli

5.4.3 客户端测试

在你的本地电脑命令提示符下,用 window 版本 redis 测试 redis-cli -h 192.168.247.135

搭建 Tomcat 服务并部署 web 应用

docker run -di --name my-tomcat -v /root/webapps: /usr/local/tomcat/webapps -p 8888:8080 imageID

docker run -ti --name my-tomcat -v /opt/webapps:/opt/tomcat/webapps -p 8888:8080 imageID /bin/bash

容器内的 tomcat

目录 : /usr/local/tomcat/webapps

docker run -di --name my-tomcat -v /kkb/webapps:/usr/local/tomcat/webapps -p 8888:8080 --privileged=true tomcat:7-jre7

说明:

--name : 该参数的作用是给容器起一个名字 , 名字要唯一 。

-v :该 参 数 的 作 用 是 进 行 目 录 映 射 ,具 体 指 的 是 宿 主 机 器 和 容 器 之 间 的 目 录 映 射 。

/opt/webapps : 宿主机器的目录

/opt/tomcat/webapps : 容器中的目录

-p :该参数的作用是进行端口映射 ,具体指的是宿主机器和容器之间的端口映射 。

8888 端口是宿主机的 端口

8080

端口是容器内的端口

1、将 war 包上传到宿主机器的/opt/webapps/目录下。 2、tomat 会自动热部署,直接访问 web 应用的路径即可。

6 制作镜像

纯手工制作镜像

需求:制作一个 tomcat 镜像。

步骤: 1、下载基础镜像(centos7)  docker pull centos:7

2、安装 64 位 jdk(注意:jdk 要和 os 的位数一致)

vi /etc/profile

export JAVA_HOME=/opt/jdk export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

3、安装 tomcat

4、生成新的镜像

docker commit

容器名称 或者容器 ID

新镜像名称

你可能感兴趣的:(docker命令操作及应用)