docker知识点梳理

tech2022-07-15  152

docker 镜像操作

拉取镜像 docker pull 镜像地址名称 查看本地镜像 docker images 删除本地镜像 docker rmi 镜像id 镜像导出 dokcer save -o /home/user/docker/filename imageid 镜像导入 docker load -i filename 修改标识 docker tag 镜像id name:tag #冒号前是名称,冒号后是tag

容器的操作

运行容器 docker run 镜像id[镜像名称:tag] #无法被外部访问 docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像id[镜像名称|TAG] #-d表示后台运行容器 #-p端口映射 查看正在运行的容器 docker ps [-qa] #-q表示只查看容器的标识(image id) #-a表示查看全部的容器,包括没有运行的容器。 查看容器的日志 docker logs -f 容器id #-f表示可以滚动查看容器的最后几行 进入容器内部 docker exec -it 容器id bash 停止容器 docker stop 容器id 删除容器 docker rm 容器id #或者删除全部 docker rm ${docker ps -qa} 宿主机文件复制到容器内部 docker cp 文件名称 容器id:容器内部路径

数据卷

创建数据卷 docker volume create 数据卷名称 查看数据卷信息 docker volume inspect 数据卷名称 查看全部数据卷 docker volume ls 删除数据卷 docker volume rm 数据卷名称 #+ENG_SRC - 使用数据卷 ```bash docker run -v 路径:容器内部的路径 镜像id

自定义镜像

创建Dockerfile文件

# 自定义一个tomcat镜像,并将一个ssm war包放入 from daocloud.io/library/tomcat:8.5.15-jre8 #指定自定义镜像依赖的环境 copy ssh.war /usr/local/tomcat/webapps #将相对路径下的内容复制到自定义镜像中 workdir #生命镜像的默认工作目录 cmd # 需要执行的命令(可以指定多个,但以最后一个为准)

制作镜像

docker build -t 镜像名称[:tag]

Docker-Compose

Docker-Compose批量管理容器,需要单独安装

编写docker-compose.yml文件

version: '3.1' services: mysql: #服务名称 restart: always #只要docker启动,那么这个容器就跟着启动 image: daocloud.io/library/mysql:5.7.4 #指定镜像的路径 container_name: mysql #指定容器名称 ports: - 3306:3306 #指定端口号的映射 environment: MYSQL_ROOT_PASSWORD: 123456 #root用户的登录密码 TZ: Asia/Shanghai #指定时区 volumes: - /opt/docker_msyql/data:/var/lib/mysql #数据卷的映射 tomcat: restart: always image: daocloud.io/library/tomcat:8.5.15-jre8 container_name: tomcat ports: - 8080:8080 environment: TZ: Asia/Shanghai volumes: - /opt/docker_tomcat/tomcat_webapps:/user/local/tomcat/webapps - /opt/docker_tomcat/tomcat_logs:/usr/local/tomcat/logs

使用docker-compose同时启动tomcat和mysql容器(在docker-compose.yml路径启动)

docker-compose up -d

其他命令

关闭并删除容器 docker-compose down 开启关闭或重启已经存在的docker-compose维护的容器 docker-compose start|stop|restart 查看docker-compose管理的容器 docker-compose ps 查看日志 docker-compose logs -f docker-compose配合Dockerfile使用 编写docker-compose.yml version: '3.1' services: ssm: restart: always build: context: ../ #指定Dockerfile所在路径 dockerfile: Dockerfile #指定Dockerfile文件名称 image: ssm:1.0.1 container_name: ssm ports: - 8081:8080 environment: TZ: Asia/Shanghai 在docker-compose.yml的上级目录编写Dockerfile文件 from daocloud.io/library/tomcat:8.5.15-jre8 copy ssm.war /usr/local/tomcat/webapps 重新构建自定义镜像 docker-compose build docker-compose up -d --build

Docker CI、CD

CI(continuous intergration) 继续集成

搭建gitlab服务器

通过docker-compose.yml去安装gitlab version: '3.1' services: gitlab: image: 'twang2218/gitlab-ce-zh:11.1.4' container_name: 'gitlab' restart: always hostname: 'gitlab' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://ip' gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['smtp_enable'] = true gitlab_rails['gitlab_shell_ssh_port'] = 22 ports: - 80:80 - 443:443 - 22:22 volumes: - /opt/docker_gitlab/config:/etc/gitlab - /opt/docker_gitlabe/data:/var/opt/gitlab - /opt/docker_gitlab/logs:/var/log/gitlab
最新回复(0)