JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Docker安装及命令整理 docker-ce安装

wys521 2024-10-26 14:48:18 精选教程 24 ℃ 0 评论

安装docker

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

yum -y install docker-ce

docker的启动与停止

启动docker

systemctl start docker

停止docker

systemctl stop docker

重启docker

systemctl restart docker

查看docker状态

systemctl status docker

开机启动

systemctl enable docker

查看docker概要信息

docker info

查看docker帮助文档

docker --help

docker镜像相关命令

查看本地所有镜像

docker images

REPOSITORY:镜像名称 TAG:镜像标签 IMAGE ID:镜像id CREATED:创建时间 SIZE:镜像大小

镜像都是存储在Docker宿主机的/var/lib/docker目录下

搜索镜像

docker search 镜像名称

NAME :仓库名称 DESCRIPTION :镜像描述 STARS :start数 越多越受欢迎 OFFICIAL :是否官方 AUTOMATED:自动创建,表示该镜像是由docker hub自动构建流程创建的

拉取镜像,从中央仓库下载镜像到本地

docker pull 镜像名称

如:docker pull nginx

删除镜像

docker rmi 镜像id

删除所有镜像

docker rmi -f docker images -q

容器相关命令

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次运行的容器

dockers ps -l

查看停止的容器

docker ps -f status=exited

创建容器及常用参数

创建容器

docker run

-i:表示运行容器

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


-v:表示文件挂载(宿主机目录:容器目录),可以使用多个-v做多个目录或文件映射,修改宿主机上的文件同步更新到容器

-d:创建守护进程在后台运行

-p:端口映射(宿主机端口:容器内的端口),可以使用多个-p做多个端口映射

--name:容器名称

--link 容器名称: 容器间单向通讯

交互方式创建容器

docker run -it --name=容器名 镜像名:标签 /bin/bash

退出当前容器

exit

守护方式创建容器

docker run -d --name=容器名 镜像名:标签

停止容器

docker stop 容器名称(容器id)

启动容器

docker start 容器名称(容器id)

重启容器

docker restart 容器名称(容器id)

删除已停止的容器

docker rm 容器名称(容器id)

删除运行中的容器

docker rm -f 容器名称(容器id)

文件拷贝

从宿主机拷贝到容器

docker cp 拷贝的文件和目录 容器id:容器目录

从容器拷贝到宿主机

docker cp 容器id:容器目录 拷贝的文件和目录

目录挂载

在创建容器的时候将宿主机的目录与容器内的目录进行映射,这样我们可以通过修改宿主机上某个文件从而影响容器

创建容器时使用-v 宿主机目录:容器目录 如:

docker run -d -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos centos:7

如果共享的是多级目录,可能会出现权限不足的提示,这是因为centos7中的安装模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂在目录没有权限的问题

使用 --volumes-from 共享容器内挂载点,

适用场景多个容器挂载相同的目录且使用的文件相同

·1、创建一个共享挂载点的容器

docker create --name webpage -v /usr/local/docker/webapps-docker:/usr/local/tomcat/webapps tomcat /bin/true

创建容器使用其他容器的挂载点

docker run --volumes-from webpage --name tomcat1 -d -p 8001:8080 tomcat

docker run --volumes-from webpage --name tomcat2 -d -p 8002:8080 tomcat

查看容器ip

docker inspect 容器id(容器名称)

也可以直接使用如下的命令直接输出ip地址

docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' 容器id(容器名称)

迁移与备份

容器保存为镜像

docker commit 容器名 保存为镜像名

镜像备份 把镜像保存为某个文件

docker save -o 保存的文件名 镜像名

镜像恢复

docker load -i 保存的文件名

-i 输入文件

容器间通信

1、单向通信

--link 容器名,如下命令 在web可以ping通database,在database中ping不通web,访问通过容器名而不是ip

docker run -d --name web --link database tomcat

2、双向通信

借助bridge 实现容器间双向通讯

创建bridge类型的网络

docker network create -d bridge mybridge

创建两个互相通讯的容器

docker run -d --name web tomcat

docker run -d -it --name database centos /bin/bash

把上面创建的两个容器加入到新创建的mybridge网络中

docker network connect mybridge web

docker network connect mybridge database

测试是否能够通讯,在容器内容 ping 容器名

Dockerfile

什么是Dockerfile

Dockerfile是一个包含用于组合镜像命令的文本文档,docker通过读取Dockerfile中的指令按步自动生成镜像

根据Dockerfile构建镜像命令

docker build -t 机构/镜像名<:tags> Dockerfile目录

常用命令

FROM image_name:tag :定于了使用哪个基础镜像

MAINTAINER user_name :声明镜像的创建者

ENV key value :设置环境变量

RUN command :构建镜像执行

ADD source_dir/file dest_dir/file: 将宿主机的文件复制到容器内,如果是一个压缩文件将自动解压

COPY source_dir/file dest_dir/file :将宿主机的文件复制到容器内,如果是一个压缩文不会自动解压

WORKDIR path_dir :设置工作目录

CMD 容器启动后执行的默认的命令或参数,如Dockerfile中出现多个CMD只有最后一个被执行,容器在启动时附件指令则CMD别替换

ENTRYPOINT 容器启动时执行的命令,Dockerfile中最后一个ENTRYPOINT会被执行

RUN yum install -y vim #Shell命令格式

RUN ["yum","install","-y","vim"] #Exec命令格式


应用部署

安装mysql 步骤

1、下载mysql镜像

dockers pull mysql

2、根据镜像启动mysql容器

docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:tag

--name : 指定容器名docker-mysql

-e MYSQL_ROOT_PASSWORD=123456 给root账号设置密码

安装ES

1、下载镜像

docker pull elasticsearch

2、根据镜像启动ES容器

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name docker_ES elasticsearch

9200端口是发送http的端口

9300端口是集群之间通讯的端口

Docker 启动nginx容器

设置挂载点用法示例

当文件改变restart一下容器即可,或者进到容器内部重启一下nginx

docker run -d -p 80:80 \

--name docker-nginx-customer-fangzy \

-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/index.html:/usr/share/nginx/html/index.html \

-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/nginx.conf:/etc/nginx/nginx.conf \

-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/default.conf:/etc/nginx/conf.d/default.conf \

nginx:tag

安装Jenkins

需要现在宿主机上新建 /usr/local/dockertest/docker-jenkins/jenkins_home 目录,作为Jenkins的挂载点

1、下载镜像

docker pull jenkins

2、根据镜像启动Jenkins容器

docker run -d –name docker-jenkins -p 8081:8080 -p 50000:50000 -v /usr/local/dockertest/docker-jenkins/jenkins_home:/var/jenkins_home jenkins

安装gogs

1、下载最新的镜像

docker pull gogs/gogs

2、根据镜像启动容器

docker run –name=docker-gogs-latest -d -p 3000:3000 -v /usr/local/dockertest/docker-gogs-data:/data gogs/gogs

安装activemq

1、拉取activemq镜像

docker pull docker.io/webcenter/activemq

2、启动activemq服务

docker run -d --name activemq -p 61616:61616 -p 8161:8161 docker.io/webcenter/activemq:latest

登录账号密码:admin


Dockerfile构建镜像示例

使用Dockerfile构建tomcat镜像

1、在合适位置创建文件夹 tomcat

2、在tomcat文件夹下创建web-app文件夹,在web-app文件夹下创建index.html,编辑index.html添加一段内容

3、在tomcat文件夹下创建Dockerfile文件,编辑Dockerfile添加如下内容


4、执行如下命令构建镜像

docker build -t fangzy/tomcat:1.0 .

使用 docker images命令查看镜像


5、执行如下命令启动容器

docker run -d -p 8080:8080 fangzy/tomcat:1.0

6、在浏览器中访问 ip:8080/web-app/index.html 页面显示添加到index.html中的内容


使用Dockerfile构建Springboot程序镜像,根据传入的参数启动不同环境

1、创建一个springboot的文件

2、本地创建springboot工程,提供出一个rest api接口,接口返回值从不同环境的配置文件中获取,打包并上传打包之后的jar包到springboot目录下

3、在springboot文件夹下创建Dockerfile文件,编辑Dockerfile添加如下内容


4、执行如下命令构建镜像

docker build -t fangzy/apringboot-profile-test:1.0 .

5、使用 docker images查看构建的镜像


6、使用如下命令启动容器

docker run -d -p 8001:8080 -e PROFILE=test fangzy/apringboot-profile-test:1.0

启动容器时根据传入不同的PROFILE的值启动不同的环境的配置信息

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表