Fedora开机启动速度的优化
一直认为我的虚拟机性能不够所以导致自己的机器开桌面环境,开机慢慢慢慢慢慢…….今天终于发现了原因…..
过程使用systemd-analyze 命令使用systemd-analyze blame 命令罗列所有的启动的服务和耗时
我的机器耗时间最长的是
dnf-makecache.service 占用了 1min 8.124s;
plymouth-quit-wait.service 占用了 1min 744ms
配置所以关闭它,阻止今后开机的时候启动
systemctl disable dnf-makecache.service
systemctl disable dnf-makecache.timer
或者就直接把这个服务指向 /dev/null 也是可以的, 总体来说就是让他开机的时候不要继续启动。
systemctl mask dnf-makecache.service
systemctl mask dnf-makecache.timer
systemctl mask plymouth-quit-wait.service
systemctl mask firewalld.service
尽量不使用DHCP使用固定的IP可以提高启动速度,其他的不需要服务可以自行关闭即可
优化后的结果[root@localhost ~]# systemd-analyze
Startup finished in 3.091s (kernel) + 1.669s (initrd) + 5.211s (userspace) = 9.971s
[root@localhost ~]# systemd-analyze blame
2.868s vmware-tools.service
1.317s lvm2-monitor.service
1.115s dev-mapper-fedora\x2droot.device
1.044s fwupd.service
865ms NetworkManager-wait-online.service
834ms systemd-udev-settle.service
794ms dracut-initqueue.service
715ms udisks2.service
566ms sssd.service
533ms initrd-switch-root.service
443ms abrtd.service
404ms systemd-udev-trigger.service
326ms systemd-journal-flush.service
280ms ModemManager.service
259ms libvirtd.service
251ms polkit.service
209ms chronyd.service
199ms NetworkManager.service
192ms systemd-vconsole-setup.service
164ms accounts-daemon.service
149ms user@42.service
146ms systemd-udevd.service
143ms dracut-cmdline.service
137ms dracut-pre-pivot.service
137ms systemd-tmpfiles-setup-dev.service
134ms systemd-sysctl.service
131ms packagekit.service
124ms gssproxy.service
119ms fedora-readonly.service
116ms lvm2-pvscan@8:2.service
111ms user@0.service
110ms avahi-daemon.service
105ms auditd.service
105ms dmraid-activation.service
101ms gdm.service
86ms systemd-user-sessions.service
71ms fedora-import-state.service
65ms initrd-parse-etc.service
58ms upower.service
51ms systemd-logind.service
47ms var-lib-nfs-rpc_pipefs.mount
47ms systemd-fsck@dev-disk-by\x2duuid-e37f7ce7\x2d367b\x2d4e28\x2d8c1e\x2d3b98d1e4d441.service
46ms systemd-journald.service
45ms systemd-tmpfiles-setup.service
44ms boot.mount
41ms home.mount
41ms wpa_supplicant.service
40ms dev-hugepages.mount
37ms nfs-config.service
35ms plymouth-read-write.service
33ms rpc-statd-notify.service
30ms systemd-remount-fs.service
30ms systemd-fsck@dev-mapper-fedora\x2dhome.service
27ms geoclue.service
27ms cups.service
26ms colord.service
24ms livesys.service
23ms rtkit-daemon.service
22ms dracut-pre-udev.service
21ms dev-mqueue.mount
21ms dracut-shutdown.service
20ms sysroot.mount
20ms switcheroo-control.service
20ms plymouth-start.service
19ms plymouth-switch-root.service
19ms kmod-static-nodes.service
16ms dev-mapper-fedora\x2dswap.swap
16ms initrd-cleanup.service
15ms systemd-fsck-root.service
13ms livesys-late.service
10ms sys-kernel-debug.mount
6ms systemd-update-utmp-runlevel.service
6ms initrd-udevadm-cleanup-db.service
6ms systemd-update-utmp.service
6ms systemd-random-seed.service
5ms tmp.mount
2ms sys-kernel-config.mount
可以通过命令查看systemd的一些信息:
systemctl --failed # 查看所有启动或者运行失败的服务
systemctl status # 查看系统启动之后的所有Service 以及状态
Mark Tips
axel dnf可用的多线程更新
yum-fastestmirror 自动挑选最快的服务器更新
附加一个systemd的使用教程:- ClickThisLink
附加一个plymouth的教程:- ClickThisLink
VMwareTools共享文件夹方案
升级了VMware Workstation 15, 迁移过来Fedora 27的虚拟机里面不能共享剪贴板,不能拖拽复制,共享文件夹设置之后不会挂载在/mnt/hgfs目录下,找到的解决方案如下:
解决共享剪贴板
fedora 27下,直接安装 dnf update -y
dnf install -y open-vm-tools-desktop
OR
dnf install -y open-vm-*
重启虚拟机即可
解决挂载VMware共享文件不显示
这个问题我的解决办法是: 卸载这个机器上的open-vm-tools所有包,安装VMware提供的Tools,才可以正常使用
那么步骤如下: dnf remove -y opem-vm-*
reboot
------------
在VMware中,选择安装VMwareTools,然后提示推荐使用Open-VM-Toools工具,输入YES,强制安装
一路回车,直到出现Enjoy.
reboot
重启之后可以在/mnt/hgfs目录下看见共享的目录了,完美
如果需要可以添加一条指令在/etc/fstab条目,vim /etc/fstab
- .host:/SHAREDFOLDERNAME /mnt/hgfs vmhgfs defaults 0 0
收工
荣耀8-刷LineageOS14.1简述
荣耀8刷LineageOS 14.1 , 感谢XDA的大神们。用到的刷机包我转存了一份到微云,链接在末尾。
一 基本情况
设备: 华为荣耀8 FRD-AL10 国行
初始系统版本: B396 EMUI 5.0.1
解锁状态: Phone Unlocked
二 需要准备的原料
手机
SD卡
电脑一台,USB线一根
荣耀8海外版安装包 Name:update.zip & update_data_full_hw_usa.zip
OpenKirin TWRP 3.1.1.1 Name:twrp-3.1.1-1-frd.img
LineageOS ROM From XDA Name:lineage-14.1-20170812-Unofficial.zip
OpenGAPPS Name:open_gapps-arm64-7.1-stock-20180705.zip
SuperSU Name:SuperSU-v2.82-201705271822.zip
Dolby ATOM安装包
三 流程1 解锁手机
首先需要进行华为手机的解锁,百度一下有很多,所以不再过多的介绍。
需要知道是我大华为要关闭后续的解锁服务了,所以今后即便是刷如果你没有解锁码也只能作罢。
2 复制安装包到SD卡
在SD卡上新建一个文件夹,名字叫做packages , 或者其他也可以。
复制4-9项文件到SD卡
将SD卡放入手机。
3 写入TWRP
解锁之后可以使用命令来写入TWRP Recovery。 Recovery使用的openkirin项目组的版本。请自行确保驱动及手机的连接处于正常状态即可。
打开adb工具目录,在工具目录中使用Shift+鼠标右键,将文件夹在命令行或Powershell中打开。
adb.exe devices —— ## 查看是否识别手机成功。
adb.exe reboot fastboot ——— ## 将手机重启至fastboot模式. NOTE – 进入fastboot的方式,除了adb reboot fastboot之外还可以,关机,手机连接电脑,开机键加*音量-*,直到出现fastboot界面为止。
fastboot.exe flash recovery ./twrp-3.1.1.1-frd.img —— ## 写入Recovery
fastboot.exe reboot —— ## 重启手机。
4 安装海外版ROM
XDA原帖 – HERE
拔掉数据线,关机,长按 音量+ 和 开机 , 直到出现 解锁警告 和 Your device is booting now …
进入Recovery,一次进入Install – Select Storage – Micro SDCard – OK – Packages。
点击update.zip – Swipt to confirm Flash.
等待写入成功后会自动重启。
自动进入eRecovery安装更新,这个是正常的,不用管他就好。
安装更新之后会自动重启,这个时候TWRP会被覆盖,也就是说你的TWRP手机上已经没有了,被替换成了ROM里面华为默认的recovery,需要重新进入fastboot再写入一次TWRP。
按照写入TWRP的步骤再来一次即可。 NOTE – 如果提示写入TWRP失败,需要再使用解锁码解锁一次手机,不要需要管fastboot界面的那个提示。我的手机当时显示的是已经解锁,但是其实是没有的,需要2次解锁手机才可以写入TWRP。
再次进入TWRP之后,重复第2步,找到update_data_full_hw_usa.zip – Swipt to confirm Flash.
自动写入成功后会自动重启,进入系统后查看关于手机,其中名称变为NRD90M。说明我们已经可以写入LineageOS了。
5 卡刷LineageOS
XDA原帖 – HERE
我用的是US Model – FRD-L14C567 – B360 ,可以使用。
重启手机,进入TWRP, 双清,格式化data分区。
选择lineage-14.1-20170812-Unofficial.zip – Swipt to confirm Flash.
等待写入成功之后重启。NOTE – 如果写入之后一直卡在开机动画,解决方法是进入TWRP – 格式化data分区即可。
第一次开机的过程可能有些慢,但是只要第一进入了系统就可以了,后面不会再出现问题了。
刷入LineageOS完成。
6 安装SuperSU
SuperSU官网 – HERE
选择SuperSU-v2.82-201705271822.zip – Swipt to confirm Flash.
进入系统就可以看到了,可以直接使用。
如果不是用SuperSU,可以使用Magisk,好像这个好用一些。
7 安装OpenGAPPS
OpenGAPPS官网 – HERE
进入TWRP, 选择open_gapps-arm64-7.1-stock-20180705.zip – Swipt to confirm Flash.
重启之后就可以在系统里面看到了,我选择的这个版本是替换系统应用的版本,所以可以提供一个近乎于原生的体验。
8 安装杜比ATOMS
XDA原帖 – HERE
选择dax_lemax2_v1.6.3.zip – Swipe to confirm Flash.NOTE – 帖子中给出了五个安装包,我基本上是尝试到第二个的时候成功了,所以我在这个把原帖放出来是说,可能这个需要不同的机型去尝试。
重启可以在系统应用中直接看到。可以开启或者关闭。
可以选择使用Viper或者Dolby,看自己的喜好了。NOTE – 这种应用,我觉得有一个就够了,其实只是优化一下外放的效果。
四 结尾只是不习惯如此多的ROM里面内置了很多我不使用的应用,还不能删除。其实还是那句话,不建议刷机,如果你知道自己在做什么。
五 共享下载资源包括我所有文中使用到的安装包及文件,我上传到了微云,下载链接如下。NOTE – opengapps的安装包我替换成了pico,这样不需要翻墙,只有Google的框架和基础应用,也不会替换系统应用。下载地址 – HERE密码:9yn57o
Hexo备份和恢复
hexo 博客的备份和还原方法。
这里是介绍安装步骤:Hexo_Install
尝试在我写博客的虚拟机里面使用了一个破坏性的命令,dnf autoremove 这个命令导致我的虚拟机彻底坏了。我恢复了快照,但是是两个月前的记录了, 对于如何回复自己的博客内容, 找到了这样一个解决方案。
思路
在 github 上设置一个新的分支 hexo。
在这个分支上放置自己工作目录下的原始文件。
每次推送Blog到github的时候同时推送自己的工作目录到github。
当需要恢复自己的本地环境的时候,直接从github上面Clone下来就可以了。
之前的思路是去hexo的工作目录下面找blog的项目,编译之后推送静态页面到gtihub。现在是直接把工作目录传上去,用的时候下载下来。
步骤
准备一个新的工作目录, 在目录下git clone 自己的 Blog 项目。git clone https://github.com/xxxx/xxxx.github.io.git
创建目录结构。
到 xxxx.github.io 目录下面,保留下面的 .git 目录,删除所有的其余目录。
将之前的hexo工作目录的所有文件复制到 xxxx.github.io 下。
在 xxxx.github.io 目录下放置 .gitignore 文件,内容如下: .DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
cd 到 xxxx.liarlee.io 目录下,使用命令新建分支: git checkout -b hexo
将hexo工作目提交到缓存 git add --all
提交到github的hexo分支 git commit -m "SaySomethingHERE“
推送到自己博客项目的hexo分支下 git push --set-upstream origin hexo
现在项目下面就有两个分支了, main 分支 和 hexo 分支, main 分支里面是 渲染好的前端静态文件, hexo 分支里面是整个项目原始代码以及配置文件。
新的完整更新步骤git add --all
git commit -m "SaySomethingHERE"
git push origin hexo
hexo clean && hexo g -d
恢复hexo的工作目录
sudo cnpm install -g hexo-cli
dnf install -y npm
sudo npm install -g cnpm –registry=https://registry.npm.taobao.org
cd Liarlee.github.io/Liarlee
sudo cnpm install -no-bin-links
sudo cnpm install hexo-deployer-git
去Github上面添加机器的ssh public key
尝试使用hexo d , 查看是否可以成功。
RPM制作的笔记
关于制作RPM包的笔记~
一. 制作RPM包教程源码包的制作教程基于RHEL 5 & 6,当我写这个的时候还没有7版本, 我会在后续更新新版本的路数(大半夜翻到这个破防了, 来自18年的flag , 现在是时间是 2023 - 08 - 18 , 过了。
1. Rpm包的制作流程简述
放置源码进入SOURCES文件夹
写好SPEC文件
运行rpmbuild命令,自动执行安装和清理
自动将所有的源码解压到BUILD目录
自动安装所有的源码程序到BUILDROOT目录
自动根据SPEC文件里面的file程序段打包到rpm包中
自动进行后续的清理
生成完整的RPM包
手动进行安装测试
2. 如何做准备需要明确的几个问题:
我们需要做一个什么样的RPM包,这个RPM包使用来做什么的,RPMs不一定包含的是二进制的内容,不一定需要编译。
至少我们需要源码,注意原材料的收集。
官方建议使用干净的源码,如果有补丁需要在制作的过程中打上补丁。
同一个软件,不同版本的RPM,新版本是否可以支持升级旧版本。需不需要清理旧版本的文件。升级是否会造成冲突。
依赖关系。
每一个PRM包都提供一种功能,Capability,可以被其他的PRM包依赖。RPM包的名字和所安装的文件都可以给其他的软件提供依赖。
自身名字的意义,提供的每一文件也可以被依赖,
他的安装和运行需要依赖于其他的RPM包本身或者所具有的文件,叫做依赖关系。
两类依赖关系,编译依赖和安装依赖。
规划依赖关系,写SPEC文件。
制作RPMs。
简单测试RPMs。
3. RPMs的规划
是否是应用程序,是否需要补丁,是否需要新的功能。
是一个程序的库文件
是一个系统配置文件集
是一个文档文件包
是否拆分完整的软件,例如:MySQL-5.5.22.tar.gz,在制作RPM包的时候被拆分为MySQL,mysql-server,mysql-devel,等等。
是一个二进制还是源码,当时都有。例如:src.rpm,里面包括了 source.tar.gz 和 spec,需要使用者安装完成之后编译再安装。
4. 制作过程1. 设计目录结构(set Up the Directory structure)制作RPM过程中千万不能用root用户每个版本对于目录的要求不同,五个不同的目录:
BUILD:不需要放任何的内容,这个目录是真正工作的目录。用于解压编译源码。
RPMS:制作完成的RPM包放在这个里面,里面的目录的名字和结构与特定平台架构有关,可以交叉平台编译。
SOURCES:所有收集的源码都在这个目录里面。
SPECS:放置SPEC文件,作为制作过程的指导说明。以软件包的名字命名,以.spec结尾。
SRPMS:放置了SRC(source)格式的RPM包。红帽提供了默认的制作目录,在/usr/src/redhat.
[LiarLee@localhost ~] tree /usr/src/redhat
2. 放置文件到正确的指定的目录(Place The Sources in the Right dirctory)。 我们首先需要自己制定自己的制作源码目录,在不使用root用户的前提下进行制作,需要修改系统的宏,来制定新的工作目录。修改工作目录的过程如下:
使用命令查看默认的宏: [LiarLee@localhost ~] rpmbuild --showrc \\ 显示所有的相关宏定义
_build——表示目录; __rm——表示命令
使用命令查看默认的配置文件: [LiarLee@localhost ~] rpmbuild --showrc | grep macrofiles \\ 显示配置文件的全局路径和文件名
\\ 权限由小到大,后一个文件的参数覆盖前面所有的定义
\\ 所以我们在家目录下创建隐藏文件.rpmmacros可以直接配置自定义的设置。
使用命令查看默认的工作目录定义: [LiarLee@localhost ~] rpmbuild --showrc | grep _topdir \\ 显示默认的工作目录宏定义
\\ 以相同的模式在.rpmmacros中直接覆盖配置,可以更改工作目录
更改topdir的宏,使用rpmbuilder的用户,创建.rpmmacros,添加内容配置宏: [LiarLee@localhost ~] vim .rpmmacros \\ Create .rpmmacros file
%_topdir /home/rpmbuilder/rpmbild/
[LiarLee@localhost ~] mkdir -pv rpmbuild/{BUILD,RPMS,SOURCES,SPEC,SRPMS}
[LiarLee@localhost ~] rpmbuild --showrc | grep _topdir \\ Review the Result
3. 创建一个spec文件(Create A Spec File that Tells the Rpmbuild Command what to do)。
spec文件使用软件的名字版本作为文件名;.spec作为扩展名。
rpm -qi mysql & rpm -qpi mysql,命令查看rpm信息,信息从spec文件中定义,软件包信息说明段落定义。
spec文件有如下几个段落:
The introduction section设置软件包的基本信息Summary: \\ 简单描述
Name: \\ 软件名字
Version: \\ 版本号
Release: \\ 发行号
License: \\ 协议
Group: \\ GROUP范围在这个文件中描述 /usr/share/doc/rpm-*/GROUPS
URL: \\ 从何处获取的站点链接,下载路径
Packager: \\ 制作者<制作者邮箱>
Vendor: \\ 制作者的公司或者本人名字
Source: \\ 源文件地址,一个链接地址
BuildRoot: \\ 制作RPM包的时候的虚拟Root目录
BuildRequires: \\ 制作过程依赖于哪些软件包的名字
The prep section解压源码包到BUILD目录的段,cd到需要的目录,设置环境变量。%prep
%setup
The build section这是源码包安装的make过程.%build
./configure OR %configure
./make OR %{__make}
make % {?_smp_mflags} \\ 多对称处理器加速编译
The install section这里是安装make install过程。系统中有install命令,install方式类似于COPY模式.%install
%{__rm}
%{__make} install DESTDIR="%{buildroot}"
%find_lang %{name}
5. The script section
这里是定义执行需要的脚本,用来配置环境。例如:添加Apache用户.
%pre Note:安装前执行
%post Note:安装后执行
%preun Note:卸载前执行
%postun Note:卸载后执行
6. The clean section
清理之前所用到的BuildRoot目录的。
%clean
%{__rm}
7. The files section
对安装的软件的程序进行规划,哪些文件安装到那个文件夹,**BUILDROOT下的所有文件必须在这个段中存在**
%files
%config(noreplace) \\ 不替换旧的配置
8. The changelog section
记录版本迭代
* Wed Apr 11 2012 Liarlee.site <Liarlee@site.com> - ReleaseNumber 更改时间
- Comments
- Comments
4. 开始编译(Build The Source and Binary RPMs)
rpmbuild命令说明: rpmbuild -bp \\ 执行到prep section
rpmbuild -bc \\ 执行到build section
rpmbuild -bi \\ 执行到install section
rpmbuild -bs \\ 制作源码格式的制作
rpmbuild -bb \\ 制作二进制格式的rpm包
rpmbuild -ba \\ 执行全部格式,BOTH二进制和源码
rpmbuild -bl \\ BUILDROOT存在但是没有在FILES段中为包含进去的文件的CHECK命令
关于安装错误的说明:在执行过程中如果有报错我们只需要去按照提示修正错误即可,在执行结束之后会在RPMS目录下生成需要的RPM包和RPM-DEBUG包.我们只需要RPM包即可,使用rpm -ivh进行安装测试.[LiarLee@localhost ~] rpmbuild -ba SoftwareName.spec \\开始制作的命令
rpm2cpio命令的说明 src-rpm包只是将源码打包成RPM格式,当我们安装src.rpm格式的安装包的时候会把包含的文件,解压到用户默认的工作目录下,所以这种格式的RPM包我们不用安装,直接制作RPM包即可.进行rebuild OR recompile. [LiarLee@localhost ~] rpm2cpio mysql.src.rpm > mysql.cpio
[LiarLee@localhost ~] rpm2cpio mysql.src.rpm | cpio -t 两个网站的推荐(搜索SRC-RPM包的站点): rpmfind.net rpm.pbone.net
二. 从头开始写新的SPEC Files制作RPM包的核心是写SPEC files,难以掌握的地方介绍SPEC文件的基本语法和简单用法
1. Spec Files OverviewSPEC file里面都是指令,告诉RPMBuild命令如何一步一步解压,编译,做成不同的RPM包,依赖关系。 Macro是指的变量大多数的字段由tag+value组成,tag是标签–Directives,不区分大小写;value是区分大小写的.
1.1 宏的自定义用户自定义宏 : %define macro_name value引用方式 : %{macro_name} OR %macro_name
1.2 注释的方式使用#来进行注释%–不能在注释中使用,如果必须使用需要双写%%
%prep
\#this is a comment for %%prep
2. Defining Package Infomatio ...
Docker中运行DCM4CHEE-arc-light
在Docker中安装DCM4CHEE-arc-light项目。
因为需要进行测试所以使用了DCM4CHEE, 但是DCM4CHEE现在的版本已经很古老了, 从而我接触了两个古老的PACS程序, 一个是Windows平台上有名的ClearCanvas, 还有一个就是DCM4CHEE。在安装的过程中遇到了很多的麻烦。 看到官方有把项目放在docker上, 所以决定直接使用。直接记录了所有的组件启动的方式和命令, 方便今后的查阅。
DCM4CHEE-arc-light是目前比较新项目了,我这里写下了最小的安装模式, 基本上足够我日常测试使用了。
这几个Docker容器是:
Docker
docker网桥
DAOCloud加速器
OpenLDAP
PostgreSQL数据库
DCM4CHEE-arc-light本体
DCM4CHEE_Docker_Command
Install Docker component:
dnf install -y docker
Create the dcm4chee bridge network:
docker network create dcm4chee_default
DAOCloud加速器配置docker:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1dac9f0.m.daocloud.io
Start OpenLDAP Server:
docker run --network=dcm4chee_default --name ldap \
-p 389:389 \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/ldap:/var/lib/ldap \
-v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d \
-d dcm4che/slapd-dcm4chee:2.4.44-13.2
Start PostgreSQL:
docker run --network=dcm4chee_default --name db \
-p 5432:5432 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \
-d dcm4che/postgres-dcm4chee:10.0-13
Start Wildfly With DCM4CHEE Archive 5:
docker run --network=dcm4chee_default --name arc \
-p 8080:8080 \
-p 8443:8443 \
-p 9990:9990 \
-p 11112:11112 \
-p 2575:2575 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
-d dcm4che/dcm4chee-arc-psql:5.13.2
Start the three applications use on command:
docker start ldap db arc
Stop the three application:
docker stop ldap db arc
附加说明:Host 说明:dcm4chee_docker: 11.11.11.209/dcm4chee-arc/ui2
Github Project DCM4CHEE-arc-light Note
HL7 Relative Features
Weasis Integrationhttps://github.com/dcm4che/dcm4chee-arc-light/wiki/Weasis-Viewer-Integration
安装Maven教程
安装Maven过程,备忘。
下载安装包
Maven Download Links
解压安装包:tar xzvf apache-maven-3.5.4-bin.tar.gz
设置环境变量: vim /etc/profile export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.5 export M2=$M2_HOME/bin export MAVEN_OPTS=-Xms256m -Xmx512m
添加环境变量到PATH: export PATH=M2:PATH
Docker基本命令说明
docker基础命令的说明。
Docker常用命令的说明Docker Pull\ 下载一个Image
[root@localhost ~]# docker pull nginx:lastest
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884: Pulling from docker.io/library/nginx
Digest: sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884
Status: Image is up to date for docker.io/nginx:latest
Docker Push\ 上传一个Image
Docker Run\ 启动一个Container
[root@localhost ~]# docker run nginx
Docker Kill\ 结束一个Container
[root@localhost ~]# docker kill flamboyant_thompson
Docker System Prune\ 清理Docker的无用文件,包括未使用的容器和不具有Dangling的镜像(不具有启动能力的Image)
Docker Images\ 列出所有的docker images
[root@localhost ~]# docker images
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cca834eb80c nginx "nginx -g 'daemon ..." 57 seconds ago Up 56 seconds 80/tcp flamboyant_thompson
769aefe85e29 achabill/lh-toolkit "dockerize -wait t..." 3 hours ago Up 3 hours 0.0.0.0:8080->8080/tcp sad_payne
93431e5f2f66 achabill/lh-mysql:latest "docker-entrypoint..." 3 hours ago Up 3 hours 0.0.0.0:3308->3306/tcp brave_mcclintock
Docker search\ 搜索特定名称的image
[root@localhost ~]# docker search nginx
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/nginx Official build of Nginx. 8564 [OK]
docker.io docker.io/nginx Official build of Nginx. 8564 [OK]
docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1334 [OK]
docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1334 [OK]
docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 547 [OK]
docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 547 [OK]
docker.io docker.io/jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as... 367 [OK]
docker.io docker.io/jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as... 367 [OK]
docker.io docker.io/kong Open-source Microservice & API Management ... 187 [OK]
docker.io docker.io/kong Open-source Microservice & API Management ... 187 [OK]
docker.io docker.io/webdevops/php-nginx Nginx with PHP-FPM 103 [OK]
docker.io docker.io/webdevops/php-nginx Nginx with PHP-FPM 103 [OK]
docker.io docker.io/kitematic/hello-world-nginx A light-weight nginx container that demons... 98
docker.io docker.io/kitematic/hello-world-nginx A light-weight nginx container that demons... 98
docker.io docker.io/bitnami/nginx Bitnami nginx Docker Image 50 [OK]
docker.io docker.io/bitnami/nginx Bitnami nginx Docker Image 50 [OK]
docker.io docker.io/zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server ... 50 [OK]
docker.io docker.io/zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server ... 50 [OK]
docker.io docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 35 [OK]
docker.io docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 35 [OK]
docker.io docker.io/linuxserver/nginx An Nginx container, brought to you by L ...
Systemd 关闭 Firewalld
如何彻底关闭 Fedora27 的 Firewalld,防止每次重启自动开启。
如何彻底关闭 Fedora27 的 FirewalldFedora 的 Firewalld,每次重启都会自动启动,不会彻底关闭,我们需要特殊的方式来关闭。
直接移除 dnf remove firewalld
指向不存在的设备 systemctl mask firewalld
# 表示直接将这个服务指向了/dev/null,无法启动也无法被其他的程序直接调用。
systemctl disable firewalld
# 开机的时候不会自动启动,但是接受其他的服务调用并启动。
配置 rc.local 服务
新建rc.local文件。 vim /etc/rc.d/rc.local
写入需要开机启动的命令或者脚本。 #!/bin/bash
echo "Autostart..."
/usr/bin/firefox
启动服务,配置开机自启。systemctl enable --now rc-local.service
Orthanc的安装
记录了Orthanc的安装过程。只有简单的安装,复杂没研究,待补全。Orthanc是一个开源的DICOM Server,支持RESTful API,是轻量级的DICOM Server,默认基于数据库SQLlite,同时也支持PostgreSQL。
准备工作 平台:Fedora OR Windows
安装Orthanc快速部署Fedora集成的RPM包Fedora提供的BuildVersion下载到本地之后:执行
dnf install -y orthanc*
systemctl enable orthanc
systemctl start orthanc
iptables -A INPUT -p tcp --dport 8042 -j ACCEPT
iptables -A INPUT -p tcp --dport 4242 -j ACCEPT
iptables-save
安装结束。
Windows一键安装包Windows安装包下载地址直接下载之后运行即可。