一、系统环境

操作系统:centos7.7

docker环境:20.10.8

二、docker中使用systemctl

测试环境需要搭建一个php的网页,果断选择了docker部署,需要在docker中部署httpd服务,因为docker中默认不允许运行systemctl服务,所以会出现以下错误

Failed to get D-Bus connection: Operation not permitted;

首先,systemctl是需要docker容器运行时,拥有系统真正的root权限。即在docker run命令式要加上 --privileged=true

网上说,大约在0.6版,privileged被引入docker。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。systemctl就需要如此的权限,不然在容器中运行systemctl命令时,会报无权限的错误:

其次,如果想在容器启动时,启动systemctl,那么有两种方法。

1.在dockerfile中加入:

此处命令的意思是,在容器启动时,运行/usr/sbin/init目录下的脚本,主要是启动dbus-daemon。

CMD ["/usr/sbin/init"]

2.在启动容器的时候,运行/usr/sbin/init,即在docker run 命令最后,加上/usr/sbin/init。

docker run  --net host --privileged=true -itd --name aladdin-holdings -p 8991:80 -p 8993:443 centos:centos7 /usr/sbin/init

三、修改docker映射端口

下面是运行中的docker环境,因为实际环境,我们需要修改docker映射端口,将docker的80 端口映射到本机的80 端口,docker的443端口映射到本机的443端口。

下面简单写下本人实践成功的一种方法。

1、停止docker容器

docker stop 1f2f202dab24

2、停止docker服务

systemctl stop docker

3、进入到docker容器文件目录

id是容器id开头的那一长串。

4、备份原有文件,出现问题后可以还原回去。

cp hostconfig.json hostconfig-bak.json

cp config.v2.json config-bak.v2.json

5、修改hostconfig.json。

vim  hostconfig.json

修改成想要的端口。

6、修改config.v2.json

vim config.v2.json

#在下面合适的位置,填写端口信息。

"Ports":{"443/tcp":[{"HostIp":"0.0.0.0","HostPort":"443"}],"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"80"}]}

7、启动docker服务

systemctl start docker

8、启动docker容器

docker start 1f2f202dab24

9、进行查看。

需要注意的是,docker修改完映射端口后,docker的ip可能会发生变化。

注:

以上为本人实际搭建过程中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!

docker更改映射端口(实践篇)相关推荐

  1. docker查看映射端口

    docker查看映射端口: [root@VM_0_2_centos local]# docker port b041040f37d3 3306/tcp -> 0.0.0.0:3305 #命令: ...

  2. Docker容器映射端口方法

    Docker容器映射端口分两种情况,如果新建容器,直接在docker run或docker create时添加:如果是运行中的容器,该怎样添加呢? 第一种情况:新建容器时添加 格式:docker ru ...

  3. docker mysql映射端口映射_docker的简单操作和端口映射

    一:简介 Docker镜像 在Docker中容器是基于镜像启动的 镜像是启动容器的核心 镜像采用分层设计,最顶层为读写层 使用快照COW技术,确保底层不丢失 通过ifconfig(ip  a)来查看d ...

  4. docker dockerfile 映射端口范围 批量映射端口

    以映射7000-8000端口为例 Dockerfile EXPOSE命令: EXPOSE 7000-8000 或Docker run命令: docker run --expose=7000-8000 ...

  5. 解决Windows下无法对docker容器进行端口映射的问题

    解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...

  6. Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)

    端口映射 映射容器内应用的服务端口到本地宿主主机 1. 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要 ...

  7. serv-u 15 设置非21端口外网FTP访问以及更改被动模式端口、防火墙映射

    安装serv-u 15 后局域网可以使用ftp软件连接,但是外网使用的话直接映射非21端口后无法访问,原因不多说,更改被动端口和设置映射端口方法如下: 1.安装时(安装后更改)设置ftp的端口为 20 ...

  8. 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)

    解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 参考文章: (1)解决Windows10下无法对docker容器进行端口访问(端口映射的问题) (2)https://ww ...

  9. docker和docker-compose 端口映射

    基本遵循规则是从宿主机映射到容器,默认是tcp,如果使用udp,比如5600,要记得在运行时或者yaml文件端口处比如写:5000/udp docker-compose映射端口的标签. 使用HOST: ...

最新文章

  1. 数据库迁移之从oracle 到 MySQL
  2. boost::math模块查找正态(高斯)尺度(标准差)的示例的测试程序
  3. 分布式ID-数据库多主模式
  4. 河南大学计算机组成原理,河南大学计算机组成原理考点
  5. Shield——开源的移动端页面模块化开发框架
  6. 注意html的语言编码charset,HTML编码
  7. 计算矩阵边缘元素之和(信息学奥赛一本通-T1121)
  8. 还是畅通工程1233
  9. Error: getaddrinfo ENOTFOUND localhost
  10. Windows 8已经支持的游戏开发框架
  11. magento mysql4-install_深入理解Magento - 第五章 Magento资源配置
  12. 用python实现银行金额大小写转换
  13. 软件测试如何编写计划文档
  14. 【精品推荐】程序员必定会爱上的十款软件:不用就太浪费了@^@
  15. 2020腾讯阅文集团-前端笔试题
  16. Objective-C 编程语言(4)) 协议---声明由别人实现的接口,由别人来实现的方法,为匿名对象声明接口
  17. vue中引用tinymce图标不显示解决方法
  18. Hadoop——(Hadoop框架,Hadoop的优缺点,Hadoop1.x和2.x的版本区别,Hadoop架构,Hadoop目录结构)
  19. 用python 自动生成期权到期日的算法
  20. 思博伦Avalanche 3100 仪表只模拟服务器端

热门文章

  1. 天云大数据_【案例分享】天云大数据最佳实践系列之——信用评分模型
  2. android studio app字体大小设置,Android Studio App设置TextView文字内容大小颜色
  3. 误删除文件怎么找回 数据恢复用这些方法
  4. icafe 同步到主干
  5. 51单片机洞洞板用的visio图_万能洞洞板之单片机DIY设计,开启制作之路-可编程逻辑-与非网...
  6. 细胞制备流程图_B细胞恶性肿瘤的CAR-T免疫治疗或可出现新进展
  7. 使用GPIO输出控制Led亮灭(CC2530)
  8. 将两个单链表合并为一个单链表
  9. h1z1最新消息服务器,h1z1服务器在哪 | 手游网游页游攻略大全
  10. 搭建mysql注入_常见的sql注入环境搭建