docker启动gitlab,Docker命令与映射修
改,VNCTimedoutwaiti。。。
ps:我⽤的是本地⾃⼰搭建的私有仓库,所以下载镜像为本地地址,如果⾃⼰没有本地仓库的可以去官⽅下载,官⽅也是有这个镜像的,pull之前可以先docker search gitlab查看⼀下gitlab的⼀个镜像
下载镜像:
docker pull 192.168.0.153:5000/gitlab
创建持久化⽬录:
mkdir -p /home/dockerdata/gitlab/config
mkdir -p /home/dockerdata/gitlab/logs
mkdir -p /home/dockerdata/gitlab/data
容器内Gitlab使⽤端⼝:
Ssh 22
http 80
https 443
映射到宿主机端⼝:
Ssh 1022
http 8010
https:8443
注意:如果要使⽤宿主机的22和443端⼝,需要修改宿主机的ssh和https的默认端⼝。例如修改ssh端⼝为1022
  Ubuntu 下没启⽤ seLinux ,如果启⽤了需要先
  apt install policycoreutils-python-utils
  apt install firewalld
  否则不需要。
semanage port -a -t ssh_port_t -p tcp 1022
firewall-cmd --permanent --add-port=1022/tcp
firewall-cmd --reload
运⾏gitlab镜像:
docker run -d -h gitlab -p 1022:22 -p 8010:80 -p 8443:443 \
-v /home/dockerdata/gitlab/config:/etc/gitlab \
-v /home/dockerdata/gitlab/logs:/var/log/gitlab \
-v /home/dockerdata/gitlab/data:/var/opt/gitlab \
--restart always --name mygitlab gitlab/gitlab-ce:latest
官⽅的脚本:
sudo docker run --detach \
-
-ample \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
容器中的gitlab完全启动需要⼀定时间,可通过⽇志命令实时查看启动进度:
$ docker logs -f <container id>
启动完全完成之后访问http://<ip>:8010
可以先查看⼀下端⼝占⽤情况:
1stat  -anp  |grep  端⼝号
2stat  -nultp(此处不⽤加端⼝号)
3stat  -anp  |grep  82查看82端⼝的使⽤情况;
修改运⾏中的docker容器的端⼝映射
在docker run创建并运⾏容器的时候,可以通过-p指定端⼝映射规则。但是,我们经常会遇到刚开始忘记设置端⼝映射或者设置错了需要修改。当docker start运⾏容器后并没有提供⼀个-p选项或设置,让你修改指定端⼝映射规则。那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运⾏中的docker容器的端⼝映射?
⽅法⼀:删除原有容器,重新建新容器
这个解决⽅案最为简单,把原来的容器删掉,重新建⼀个。当然这次不要忘记加上端⼝映射。
优缺点:优点是简单快捷,在测试环境使⽤较多。缺点是如果是数据库镜像,那重新建⼀个⼜要重新配置⼀次,就⽐较⿇烦了。
⽅法⼆:修改容器配置⽂件,重启docker服务
容器的配置⽂件路径:
1. /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
其中的hashofthecontainer是docker镜像的hash值,可以通过docker ps或者docker inspect containername查看。(CONTAINER ID就可以看出来)
如上图,⽂件中其中有⼀项是PortBindings,其中8080/tcp对应的是容器内部的8080端⼝,HostPort对应的是映射到宿主机的端⼝9190。8361/tcp对应的是容器内部的8361端⼝,HostPort对应的是映射到宿主机的端⼝9191。按需修改端⼝,然后重启docker服务,再启动容器服务就可以了。
1. systemctl restart docker
优缺点:这个⽅法的优点是没有副作⽤,操作简单。缺点是需要重启整个docker服务,如果在同⼀个宿主机上运⾏着多个容器服务的话,就会影响其他容器服务。
⽅法三:利⽤docker commit新构镜像
docker commit:把⼀个容器的⽂件改动和配置信息commit到⼀个新的镜像。这个在测试的时候会⾮常有⽤,把容器所有的⽂件改动和配置信息导⼊成⼀个新的docker镜像,然后⽤这个新的镜像重起⼀个容器,这对之前的容器不会有任何影响。
1、停⽌docker容器
1. docker stop container01
2、commit该docker容器
1. docker commit container01 new_image:tag
3、⽤前⼀步新⽣成的镜像重新起⼀个容器
1. docker run --name container02 -p 80:80 new_image:tag
优缺点:这种⽅式的优点是不会影响统⼀宿主机上的其他容器,缺点是管理起来显得⽐较乱,没有第⼆种⽅法那么直观。
Docker命令列表
docker重启容器命令
容器⽣命周期管理
run 创建⼀个新的容器并运⾏⼀个命令
    docker run [OPTIONS] IMAGE [COMMAND] []
start/stop/restart 启动/停⽌/重启容器 
    docker start [OPTIONS] CONTAINER []
kill 杀掉⼀个运⾏中的容器   
     docker kill [OPTIONS] CONTAINER []
rm 删除⼀个或多个容器
  docker rm [OPTIONS] CONTAINER []
pause/unpause 暂停/恢复容器中所有的进程
docker pause [OPTIONS] CONTAINER []
create 创建⼀个新的容器但不启动它
 docker create [OPTIONS] IMAGE [COMMAND] []
exec 在运⾏的容器中执⾏命令启动新进程(⼀般⽤以监控或查询)
docker exec [OPTIONS] CONTAINER COMMAND []
容器操作
ps 列出容器
  docker ps [OPTIONS]
inspect 获取容器/镜像的元数据
docker inspect [OPTIONS] NAME|ID []
top 查看容器中运⾏的进程信息,⽀持 ps 命令参数
docker top [OPTIONS] CONTAINER [ps OPTIONS]
attach 连接到正在运⾏中的容器
docker attach [OPTIONS] CONTAINER
events 从服务器获取实时事件
docker events [OPTIONS]
logs 获取容器的⽇志
docker logs [OPTIONS] CONTAINER
     (-t⽇志添加时间戳  -f跟踪⽇志变动 --tail n/all从倒数n条处打印)wait 阻塞运⾏直到容器停⽌,然后打印出它的退出代码
docker wait [OPTIONS] CONTAINER []
export 将⽂件系统作为⼀个tar归档⽂件导出到STDOUT
docker export [OPTIONS] CONTAINER
port 列出指定的容器的端⼝映射,或者查将PRIVATE_PORT NAT到⾯向公众的端⼝    docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
容器rootfs命令
commit 从容器创建⼀个新的镜像【像代码版本控制⼀样控制业务系统及其环境的版本】    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
      (-a 作者 -m 注释)
cp ⽤于容器与主机之间的数据拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
diff 检查容器⾥⽂件结构的更改
docker diff [OPTIONS] CONTAINER
镜像仓库
login/logout 登陆/注销到⼀个Docker镜像仓库
docker login -u ⽤户名 -p 密码[SERVER]
docker logout
pull 从镜像仓库中拉取或者更新指定镜像

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。