docker增加端口映射_docker配置lamp环境笔记

基本概念

容器container本质是一个运行在主机上的进程

  • 查看运行的容器docker ps 默认只看运行中的
  • 查看所有的容器docker ps -a
  • 删除容器 docker rm 容器id[或容器名]
  • 停止一个容器 docker stop 容器id

镜像image是容器的静态概念(可以看做容器的“安装包”)

  • 查看安装的镜像docker images
  • 删除镜像docker rmi 镜像名

仓库是存放镜像的地方,跟git一样的

575e01323bf624adb8f6fd13ff12ddb2.png

镜像是打包好的运行环境,比如centos,做好这个镜像后上传到镜像库,别人就可以直接pull下来运行使用了。

安装过程记录

  1. 拉取镜像 docker pull centos
  2. 运行容器 docker run -it -p 8080:80 centos /bin/bash 该命令总是会创建一个新容器,如果要启动已经存在的容器,用docker start 容器id
    1. -i 交互模式
    2. -t 分配一个伪终端
    3. -p 主机端口:容器内的端口
    4. centos镜像名,公共受信任的镜像可以直接用镜像名,个人镜像一般是镜像库用户名/镜像名,镜像库和git库类似,如果要拉取进行的某个版本标签,可以镜像名:[Tag名]
    5. /bin/bash启动镜像后执行的命令,这里也就是启动后打开终端,然后可以使用centos的yum安装需要的包,systemctl start 启动需要的服务
  3. 但在systemctl start时报错:Failed to get D-Bus connection: Operation not permitted
  4. 这是因为D-Bus没有启动,启动选项加上 --privileged -d,并把命令从/bin/bash 修改为init
    1. init就是/usr/sbin/init, 里面会自动启动D-Bus
    2. --privileged 赋予容器更多的权限,以便正常启动D-Bus
    3. -d是进入后台运行,init并不是控制终端,执行完成后它会一直停在那个地方,无法进行命令交互,所以-d让他脱离命令行,进入后台运行
  5. 然后docker exec -it [容器id] /bin/bash 进入容器的终端,接着就可以进行使用centos的各项命令了
  6. 需要安装的内容
    1. PHP
    2. Apache
    3. MySQL
    4. openssh-server 方便通过ssh登录容器,主要是方便用sftp scp这些上传下载代码
  7. 目录共享,我们可以把docker容器中apache的工作目录挂载到主机上(运行docker的机器)的目录
  8. 增加ssh端口映射,如果run后发现需要增加端口, 比如增加ssh端口,可以这么做
    1. docker commit [容器id] [起一个名字],先把当前的容器另存为一个镜像
    2. 然后在用run启动这个镜像,并带上你添加的端口 docker run -it -p 2222:22 -p 8080:80 --privileged -d [commit时的镜像名字] init
    3. 但这里要注意,之前的端口映射也要加上 , 这里的做法只是在之前的容器上继续启动,之前镜像中安装的内容也还在,但run命令的参数和之前是一样的,增加内容而已
    4. vim /etc/ssh/sshd_config
      1. 添加PermitRootLogin yes
  9. 记得docker exec -it [容器id] /bin/bash后设置一个root密码
  10. 在上面主机和容器目录共享,在run时加上参数 -v [主机的目录]:[容器中的目录],比如 -v /workspace/ydeditor:/var/www/html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值