bash安装(通用所有平台)
-
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
sudo snap install docker $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
-
启动docker
sudo systemctl enable docker sudo systemctl start docker 查看是否成功 systemctl status docker 开机自启动 systemctl enable docker
-
创建docker用户组
$ sudo groupadd docker
-
将当前用户加入docker组
$ sudo usermod -aG docker $USER
-
重启docker服务
systemctl restart docker
-
测试docker安装是否正确
$ docker run hello-world
(1)在宿主系统编辑或创建文件daemon.json
文件路径:/etc/docker/daemon.json (注:没有则创建。)
mkdir -p /etc/docker vim /etc/docker/daemon.json
daemon.json中内容如下:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } systemctl daemon-reload
(2)重启docker
启动:
systemctl start docker
停止:
systemctl stop docker
重启:
systemctl restart docker3、配置防火墙
CentOS 7.0默认使用的是firewall作为防火墙
1、根据端口号得到其占用的进程的详细信息
netstat -tlnp|grep 80
tcp 0 0 192.168.33.10:80 0.0.0.0:* LISTEN 5014/httpd tcp 0 0 0.0.0.0:48054 0.0.0.0:* LISTEN 5386/java
2、一次性的清除占用80端口的程序
lsof -i :80|grep -v "PID"|awk '{print "kill -9",}'|sh
3、手工终止进程的运行
kill 5014
kill 5014 如果终止不了,可以强制终止
kill -9 5014
4,查看已经开放的端口:
firewall-cmd --list-ports
5,开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
6、查看防火墙状态
firewall-cmd --state
7、停止firewall
systemctl stop firewalld.service
8、禁止firewall开机启动
systemctl disable firewalld.service
– 开放指定端口
firewall-cmd --zone=public --add-port=3307/tcp --permanent
– 关闭指定端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent
4、输入命令重启防火墙
systemctl restart firewalld.service;
5、输入命令重新载入配置
firewall-cmd --reload;常用命令 (一)docker 基础命令 1、启动
systemctl start docker2、关闭
systemctl stop docker3、重启
systemctl restart docker4、设置docker自启动
systemctl enable docker5、查看运行状态
------如果是在运行中 输入命令后 会看到绿色的active
systemctl status docker6、查看版本号信息
docker version7、查看 详细信息
--------此命令可以查看到docker 中容器运行个数 以及镜像个数等等
docker info8、帮助命令
docker 帮助命令 忘记了某些命令便可使用此进行查看与回顾
//docker [命令] --help如:docker pull --help(二)docker 镜像命令 1、查看镜像列表
docker images2、搜索镜像
docker search 镜像名如:搜索STARS >9000的mysql镜像docker search --filter=STARS=9000 mysql3、拉取镜像
docker pull 镜像名 (默认最新)docker pull 镜像名:tag(版本号)4、后台运行容器
run:运行容器。-p:映射,系统外部端口:容器内部端口。-d:后台运行。--name:[name 别名].镜像名:版本 | 镜像iddocker run -p 8086:8080 -d --name tomcat8086 tomcat:8.05、删除镜像
rmi中的i表示一个镜像 image。docker image rm 镜像名称/镜像IDdocker rmi -f 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID#删除全部镜像 -a 意思为显示全部, -q 意思为只显示IDdocker rmi -f $(docker images -aq)6、保存镜像
将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字docker save tomcat -o /opt/mydocker/locmyimg.tar7、加载镜像
任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置(三)docker 容器命令
前言已经说了 docker 容器 就好比 咱java中的new出来对象(docker run 镜像 产生一个该镜像具体容器实例),docker 容器的启动需要 镜像的支持
先放上 docker 容器查看命令
1、查看正在运行容器docker ps只返回iddocker ps -q2、查看所有容器
-----包含正在运行 和已停止的
docker ps -a只返回iddocker ps -aq4、运行容器
后台启动
run:运行容器。-p:映射,系统外部端口:容器内部端口。-d:后台运行。--name:[name 别名].镜像名:版本 | 镜像iddocker run -p 8086:8080 -d --name tomcat8086 tomcat:8.0
启动并进入
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) /bin/bash 交互路径#docker run -it -d 镜像名:Tag /bin/bash docker run -it -d --name redis001 redis:5.0.5 /bin/bash
选定网桥配置
--network 网桥名创建网桥:docker network create mynetwork docker run -p 8086:8080 -d --name --network mynetwork tomcat8086 tomcat:8.0
挂载数据卷
docker run -d -it --name mycentos02 -v 数据卷名称:/usr/local/webapp centos默认路径cd /var/lib/docker/volumes/5、停止容器
正常停止容器docker stop 容器名/容器ID立即停止容器docker kill 容器名/容器ID6、删除容器
#删除一个容器 -f 可删除运行中的容器docker rm -f 容器名/容器ID#删除多个容器 空格隔开要删除的容器名或容器IDdocker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID#删除全部容器docker rm -f $(docker ps -aq)7、进入容器
/bin/bash 表示直接进去容器命令行,必加,固定写死的方法一(推荐):docker exec -it 容器名/容器ID /bin/bash方式二:docker attach 容器名/容器ID8、退出容器
#-----直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭 exit# 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭Ctrl + p + q9、重启容器
docker restart 容器ID/容器名10、启动容器
docker start 容器ID/容器名11、容器文件拷贝
———无论容器是否开启 都可以进行拷贝
#从容器内 拷出docker cp 容器ID/名称: 容器内路径 容器外路径#从外部 拷贝文件到容器内docker cp 容器外路径 容器ID/名称: 容器内路径12、查看容器日志
-f:实时展示日志。 -t:加入时间戳展示日志。 --tail n : 展示最后n行日志docker logs -t 容器ID/容器名13、查看容器内进程
docker top 容器ID/容器名14、查看容器内部细节
docker inspect 容器ID/容器名15、数据卷
自定义路径;不会把容器中的原始数据加载出去docker run -p 8080:8080 -d --mame mytomcat01 -v 宿主机目录(绝对路径):容器内目录 tomcat:8.0默认数据卷docker run -d -it --name mycentos02 -v 数据卷名称:/usr/local/webapp centosdocker run -d -it --name mycentos02 -v mycentos02:/usr/local/webapp centos默认数据卷路径/var/lib/docker/volumes/数据卷名称/_data16、更换容器名
docker rename 容器ID/容器名 新容器名17、容器自启动
启动容器时,使用docker run命令时 添加参数–restart=always 便表示,该容器随docker服务启动而自动启动
docker run -itd --name redis002 -p 8888:6379 --restart=always redis:5.0.5 /bin/bash
保存数据添加自动重启配置
方法一:数据挂载(数据卷方法)
方法二:修改其启动配置即
命令:docker update --restart=always 容器Id 或者 容器名或docker container update --restart=always 容器Id 或者 容器名(四)网络通信机制 1、创建网桥
docker network create 网桥名docker network create mynet2、删除网桥
删除一个或多个网桥
docker network rm 网桥名/网桥id
删除全部未链接的网桥‘
docker network prune3、将容器链接到网桥
docker network connect 网络名/id 容器名/id4、网桥列表
docker network ls5、断开容器与网桥的链接
docker network6、检查网桥详情
docker network inspect 网桥名/网桥id安装常用软件 1、mysql安装
docker pull mysql:8.0.21docker pull mysql:5.7docker network create mynet
docker run -d --name mysql -p 3306:3306 -v mysql8conf:/etc/mysql/conf.d -v mysql8data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=8b311#nbiot# --network mynet mysql:8.02、Redis安装
docker pull redis:5.0.5
docker run --name redis02 -d -p 6378:6379 -v redisdata:/data redis:5.0.5 redis-server --appendonly yes3、Tomcat安装
docker pull tomcat:8.0
docker run -d -p 8081:8080 --name tomcat01 -v tomcat01apps:/usr/local/tomcat/webapps -v tomcat01conf:/usr/local/tomcat/conf tomcat:8.04、jdk安装 5、Nginx安装
1、拉取镜像
docker pull nginx
2、启动容器
docker run --name nginx -v nginx02:/etc/nginx -p 3000:80 -d nginx
3、修改配置文件
cd /var/lib/docker/volumes/nginx02/_datavim nginx.config server { listen 80; server_name 114.132.224.49; #拦截后与路由匹配成功,跳转 index.html;精确匹配为 location =/xxx location / { root /etc/nginx/server/yq/dist; index index.html index.htm; }}
4、放前端项目
mkdir -p /var/lib/docker/volumes/nginx02/_data/server/yq#之后放打包好的dist文件Dockerfile Dockerfile常用命令
官方说明:https://docs.docker.com/engine/reference/builder/
将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及其参数
-
基于那个镜像进行构建新的镜像,在构建时会自动从docker hub拉取base镜像 必须作为Dockerfile的第一个指令出现
-
语法:
FROM
FROM [: ] 使用版本不写为latestFROM [@ ] 使用摘要
-
镜像维护者的姓名和邮箱地址[废弃]
-
语法:
MAINTAINER
-
RUN指令将在当前映像之上的新层中执行任何命令并提交结果。生成的提交映像将用于Dockerfile中的下一步
-
语法:
RUN
(shell form, the command is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)RUN echo helloRUN ["executable", "param1", "param2"] (exec form)RUN ["/bin/bash", "-c", "echo hello"]
-
用来指定构建的镜像在运行为容器时对外暴露的端口
-
语法:
EXPOSE 80/tcp 如果没有显示指定则默认暴露都是tcpEXPOSE 80/udp
-
用来为启动的容器指定执行的命令,在Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。
-
注意: Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。
-
语法:
CMD ["executable","param1","param2"] (exec form, this is the preferred form)CMD ["param1","param2"] (as default parameters to ENTRYPOINT)CMD command param1 param2 (shell form)
-
用来为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在,即使它没有在任何后续Dockerfile指令中使用,它也将被创建。
-
语法:
WORKDIR /path/to/workdirWORKDIR /aWORKDIR bWORKDIR c`注意:WORKDIR指令可以在Dockerfile中多次使用。如果提供了相对路径,则该路径将与先前WORKDIR指令的路径相对`
-
用来为构建镜像设置环境变量。这个值将出现在构建阶段中所有后续指令的环境中。
-
语法:
ENV
ENV = ...
-
用来从context上下文复制新文件、目录或远程文件url,并将它们添加到位于指定路径的映像文件系统中。
-
语法:
ADD hom* /mydir/ 通配符添加多个文件ADD hom?.txt /mydir/ 通配符添加ADD test.txt relativeDir/ 可以指定相对路径ADD test.txt /absoluteDir/ 也可以指定绝对路径ADD url
-
用来将context目录中指定文件复制到镜像的指定目录中
-
语法:
COPY src destCOPY ["
",... " "]
-
用来定义容器运行时可以挂在到宿主机的目录
-
语法:
VOLUME ["/data"]
-
用来指定容器启动时执行命令和CMD类似
-
语法:
["executable", "param1", "param2"]ENTRYPOINT command param1 param2
ENTRYPOINT指令,往往用于设置容器启动后的第一个命令,这对一个容器来说往往是固定的。
CMD指令,往往用于设置容器启动的第一个命令的默认参数,这对一个容器来说可以是变化的。
- 在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。例如,在 Linux 64 位系统上直接下载对应的二进制包。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose$ sudo chmod +x /usr/local/bin/docker-compose2.macos、window
- Compose 可以通过 Python 的包管理工具 pip 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。Docker Desktop for Mac/Windows 自带 docker-compose 二进制文件,安装 Docker 之后可以直接使用。
$ curl -L https://raw.githubusercontent.com/docker/compose/1.25.5/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose4.卸载
- 如果是二进制包方式安装的,删除二进制文件即可。
$ sudo rm /usr/local/bin/docker-compose5.测试安装成功
$ docker-compose --version docker-compose version 1.25.5, build 4667896bdocker-compose使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)