Docker 安装指南:简化 Linux 环境应用程序部署 (docker logs)
Docker 是一种容器化平台,它允许您在隔离的环境中打包、分发和运行应用程序。这使得部署和管理应用程序变得更加容易,特别是在分布式环境中。
安装 Docker
在 Linux 环境中安装 Docker 的步骤如下:
- Ubuntu 和 Debian:
- CentOS 和 RHEL:
- Fedora:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL| sudo apt-key add - sudo add-apt-repository "deb [arch=amd64]$(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo yum install yum-utils sudo yum-config-manager \--add-repo \sudo yum install docker-ce docker-ce-cli containerd.io
sudo dnf config-manager \--add-repo \sudo dnf install docker-ce docker-ce-cli containerd.io
运行您的第一个容器
一旦 Docker 安装完成,您可以运行您的第一个容器。要运行一个简单的 Nginx 容器,请运行以下命令:
docker run -d -
10. Docker 安装与配置
Docker是一个开源的应用容器引擎,基于LXC(Linux Container)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、 Dockerfile等;Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序, 程序之间相互隔离;
容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的一个独立的进程,不占用其他任何可执行文件的内存,非常轻量、高效、快速。
虚拟机运行的是一个完成的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。
参考:
Linux版本CentOS7
使用加速器可以提升获取Docker官方镜像的速度,下面使用 阿里云镜像 进行加速。 通过修改daemon配置文件 /etc/docker/ 来使用加速器
Docker 守护进程绑定在 Unix socket 而不是 TCP 端口。默认情况下 Unix socket 归属于 root 用户,其他用户只能通过 sudo 命令访问。所以 Docker 守护进程总是以 root 用户来运行。
如果你不希望每次运行 docker 命令时在前面加上 sudo,你可以创建一个 docker 用户组并把用户加进去。当 Docker 守护进程启动时,会创建一个 Unix socket 供 docker 用户组成员访问
创建 docker 用户组并添加你的用户
什么是 DockerHub 以及为什么它很重要?DockerHub 是一个由 Docker 公司运行和管理的基于云的存储库。它是一个在线存储库,Docker 镜像可以由其他用户发布和使用。 有两种库:公共存储库和私有存储库 。如果你是一家公司,你可以在你自己的组织内拥有一个私有存储库,而公共镜像可以被任何人使用。
镜像层和容器层
Docker 服务端是Docker 所有后台服务的统称 。其中dockerd 是一个非常重要的后台管理进程,它负责响应和处理来自Docker 客户端的请求,然后将客户端的请求转化为Docker 的具体操作。
例如:镜像、容器、网络和挂载卷等具体对象的操作和管理。
Docker 从诞生到现在,服务端经历了多次架构重构。起初,服务端的组件是全部集成在docker 二进制里。但是从 1.11 版本开始, dockerd 已经成了独立的二进制,此时的容器也不是直接由dockerd 来启动了,而是集成了containerd、runC 等多个组件。
虽然 Docker 的架构在不停重构,但是各个模块的基本功能和定位并没有变化。它和一般的 C/S 架构系统一样,Docker 服务端模块负责和 Docker 客户端交互,并管理Docker 的容器、镜像、网络等资源。
Docker 有两个至关重要的组件: runC和containerd。 runC 是Docker 官方按照OCI 容器运行时标准的一个实现。通俗地讲,runC 是一个用来运行容器的轻量级工具,是真正用来运行容器的。
containerd 是Docker 服务端的一个核心组件,它是从dockerd 中剥离出来的 ,它的诞生完全遵循OCI 标准,是容器标准化后的产物。containerd通过containerd-shim 启动并管理runC,可以说containerd真正管理了容器的生命周期。
1. 容器中长期运行 程序 有两种方式:
2. 容器 开启和停止 程序 有两种方式
3. 进入容器 有2种方法
想要web部署在互联网上 或者 在Web上访问 应用;
个人电脑处于 私网 中; IP地址处于 IPV4 和 IPV6;
安装appium
排错,困难
测试adb
改变TCPIP连接方式
查看appium运行日志 容器端口号为 4723
开启nginx,就可以在web访问 192.168.0.100;
Dockerfile其实可以看做一个命令集 。每行均为一条命令。每行的第一个单词,就是命令command。后面的字符串是该命令所要接收的参数。比如ENTRYPOINT /bin/bash。ENTRYPOINT命令的作用就是将后面的参数设置为镜像的entrypoint。至于现有命令的含义,这里不再详述。DockOne上有很多的介绍。
FROM 指令用于指定其后构建新镜像所使用的基础镜像。FROM 指令必是 Dockerfile 文件中的首条命令,启动构建流程后,Docker 将会基于该镜像构建新镜像,FROM 后的命令也会基于这个基础镜像。
在镜像的构建过程中执行特定的命令,并生成一个中间镜像。格式:
最多127层,不是写shell ;
Linux下docker基础环境搭建
curl -fsSL| bash -s docker --mirror Aliyun
# 报错:curl: (6) Could not resolve host: ; 未知的错误
# 解决:cat /etc/ 里加了个 nameserver 8.8.8.8
sudo curl -L$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:docker-compose --version
# compose 那个亚马逊的老是下载不了,可换对应地址:
sudo curl -L$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
查看docker版本: docker --version
启动docker: systemctl start docker 或者 service docker start
停止docker: systemctl stop docker
查看docker镜像文件: docker images
查看docker内容器: docker ps -a
修改 /etc/dockers 文件下的配置文件 (配置作用参考附录)
操作完成后需要重启docker: systemctl restart docker
服务端安装git:yum install git
拉取一下文件和命令:git clone查看本地和远端版本:git branch -a
切换本地分支为dev:git checkout -b dev origin/dev
启动docker:service docker start
后 执行文件中的shell:./ all (包含:mysql,mongo,redis,solr,activemq,tomcat)
删除多下载的镜像:docker rmi --force 3068f6bb852e
容器列表: docker ps -a
进入某个容器:docker exec -it [CONTAINER ID] /bin/bash
查看某个容器进程:docker top [NAMES]
查看 demo-dockers 目录下 java-runtime 文件位置下有对应几个项目配置文件
修改配置文件后,需要重新启动对应java项目,执行启动脚本 ./ + [项目名或者all]
获取镜像文件的地址:查找对应需要的镜像包
更换镜像文件: vi 内,image后的对应项目后跟的包名中
重启对应项目: ./ [项目名]
查看对应项目启动log: docker logs -f --tail 500 [生成的容器名称]
(容器重启:docker restart [容器id或名称])
authorization-plugins: [],//访问授权插件
data-root: ,//docker数据持久化存储的根目录
dns: [],//DNS服务器
dns-opts: [],//DNS配置选项,如端口等
dns-search: [],//DNS搜索域名
exec-opts: [],//执行选项
exec-root: ,//执行状态的文件的根目录
experimental: false,//是否开启试验性特性
storage-driver: ,//存储驱动器
storage-opts: [],//存储选项
labels: [],//键值对式标记docker元数据
live-restore: true,//dockerd挂掉是否保活容器(避免了docker服务异常而造成容器退出)
log-driver: ,//容器日志的驱动器
log-opts: {},//容器日志的选项
mtu: 0,//设置容器网络MTU(最大传输单元)
pidfile: ,//daemon PID文件的位置
cluster-store: ,//集群存储系统的URL
cluster-store-opts: {},//配置集群存储
cluster-advertise: ,//对外的地址名称
max-concurrent-downloads: 3,//设置每个pull进程的最大并发
max-concurrent-uploads: 5,//设置每个push进程的最大并发
default-shm-size: 64M,//设置默认共享内存的大小
shutdown-timeout: 15,//设置关闭的超时时限(who?)
debug: true,//开启调试模式
hosts: [],//监听地址(?)
log-level: ,//日志级别
tls: true,//开启传输层安全协议TLS
tlsverify: true,//开启输层安全协议并验证远程地址
tlscacert: ,//CA签名文件路径
tlscert: ,//TLS证书文件路径
tlskey: ,//TLS密钥文件路径
swarm-default-advertise-addr: ,//swarm对外地址
api-cors-header: ,//设置CORS(跨域资源共享-Cross-origin resource sharing)头
selinux-enabled: false,//开启selinux(用户、进程、应用、文件的强制访问控制)
userns-remap: ,//给用户命名空间设置 用户/组
group: ,//docker所在组
cgroup-parent: ,//设置所有容器的cgroup的父类(?)
default-ulimits: {},//设置所有容器的ulimit
init: false,//容器执行初始化,来转发信号或控制(reap)进程
init-path: /usr/libexec/docker-init,//docker-init文件的路径
ipv6: false,//开启IPV6网络
iptables: false,//开启防火墙规则
ip-forward: false,//开启_forward
ip-masq: false,//开启ip掩蔽(IP封包通过路由器或防火墙时重写源IP地址或目的IP地址的技术)
userland-proxy: false,//用户空间代理
userland-proxy-path: /usr/libexec/docker-proxy,//用户空间代理路径
ip: 0.0.0.0,//默认IP
bridge: ,//将容器依附(attach)到桥接网络上的桥标识
bip: ,//指定桥接ip
fixed-cidr: ,//(ipv4)子网划分,即限制ip地址分配范围,用以控制容器所属网段实现容器间(同一主机或不同主机间)的网络访问
fixed-cidr-v6: ,//(ipv6)子网划分
default-gateway: ,//默认网关
default-gateway-v6: ,//默认ipv6网关
icc: false,//容器间通信
raw-logs: false,//原始日志(无颜色、全时间戳)
allow-nondistributable-artifacts: [],//不对外分发的产品提交的registry仓库
registry-mirrors: [],//registry仓库镜像
seccomp-profile: ,//seccomp配置文件
insecure-registries: [],//非https的registry地址
no-new-privileges: false,//禁止新优先级(??)
default-runtime: runc,//OCI联盟(The Open Container Initiative)默认运行时环境
oom-score-adjust: -500,//内存溢出被杀死的优先级(-1000~1000)
node-generic-resources: [NVIDIA-GPU=UUID1, NVIDIA-GPU=UUID2],//对外公布的资源节点
runtimes: {//运行时
cc-runtime: {
path: /usr/bin/cc-runtime
path: /usr/local/bin/my-runc-replacement,
runtimeArgs: [
服务端安装git:yum install git
拉取一下文件和命令:git clone
指定分支克隆git clone -b dev-1
查看本地和远端版本:git branch -a
切换本地分支为dev:git checkout -b dev origin/dev
启动docker:service docker start
后 执行文件中的shell:./ all (顺序:mysql,mongo,redis,solr,activemq,tomcat)
删除多下载的镜像:docker rmi --force 3068f6bb852e
容器列表: docker ps -a
进入某个容器:docker exec -it [CONTAINER ID] /bin/bash
查看某个容器进程:docker top [NAMES]
# 查看是否安装了tomcat: rpm -qa | grep tomcat
# 查找文件:find / -name tomcat
# 切换Tomcat目录:cd /usr/local/tomcat/bin
# 关闭Tomcat:./
# 查看docker中的java版本:docker exec container_name java -version
git拉代码:git clone [email protected]:gchat/
查看远端分支:git branch -r
创建本地dev分支 并切换到dev分支:git checkout -b dev origin/dev
查看本地分支:git branch
切换回眸分支:git checkout master
查看所有JDK在系统中位置:/usr/libexec/java_home -V
参考地址:
查找docker 安装包:yum list installed | grep docker
停掉docker:systemctl stop docker
删除对应文件:yum remove docker.x86_64 docker-client.x86_64 docker-common.x86_64 -y
查看下docker rpm源:rpm -qa | grep docker
删除对应路径:rm -rf /var/lib/docker
注释:
本次也是由于业务需要,需要重新搭建新的测试服务器,这也是搭建中的一个插曲,后续会使用 Jenkins 进行相关的持续集成,大家一起学习分享!~
阿里云ECS服务器安装docker详细步骤
环境:ECS服务器,务必使用CentOS 7 以上版本,64位系统推荐是CentOS 7.8 安装步骤: 一:安装docker所需的环境 1.安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2 2.配置yum源 使用国内的:yum-config-manager --add-repo3.查看docker版本:yum list docker-ce --showduplicates | sort -r 二:安装docker 注意:不使用1.13.1版本,该版本在jenkins使用docker命令时会说找不到配置文件 1.安装docker:yum -y install 7 2.查看docker版本:docker -v 3.启动docker:systemctl start docker 4.查看docker 启动状态:systemctl status docker 5.检查安装结果:docker info 运行Docker守护进程:systemctl start docker 停止Docker守护进程:systemctl stop docker 重启Docker守护进程:systemctl restart docker 6.查看容器:docker ps 7.停止容器:docker stop 容器id 三:修改镜像仓库: vim /etc/docker/ 添加如下内容: { debug:true,experimental:true,registry-mirrors:[} 8.查看信息:docker info 仅供个人学习使用,如有不足请指出。 愿景:愿天下所有程序员能早日财富自由,永不搬砖!
若对本页面资源感兴趣,请点击下方或右方图片,注册登录后
搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源
如有其他疑问,请咨询右下角【在线客服】,谢谢支持!
相关文章
- 解放双手,轻松驾驭输入世界!搜狗输入法电脑版,您的打字神器! (解放双手轻松带娃的好地方)
- 打字如飞,畅游文字王国!搜狗输入法电脑版不容错过! (打字飞快)
- 高效办公利器,搜狗输入法助您事半功倍! (高效办公利器有哪些)
- 告别枯燥打字,搜狗输入法赋予文字新活力! (告别枯燥打字图片)
- 立即下载搜狗输入法,体验极致打字享受! (下载 搜狗)
- 周易免费算命2021:深入你的内心,发现你的真正潜力 (周易免费算命测运势)
- 2021年周易免费在线算命:开启你的成功之路 (2021年周大福金价)
- 周易免费算命2021:为你指点迷津,趋吉避凶 (周易免费算命测运势)
- 2021年周易免费在线算命:点亮你人生的明灯 (2021年周六福金价)
- 周易免费算命2021:揭示你的财富、健康和爱情运势 (周易免费算命测运势)
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~