Docker的安装以及初步使用

1.docker安装

1:将用户切换到root权限 $su -root

2:如果电脑没有安装yum工具的话请先安装 $ yum install -y yum-utils device-mapper-persistent-data lvm2

3:添加yum阿里云仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4:安装社区版Docker $ yum -y install docker-ce

5:启动关闭docker: start docker/stop docker/restart docker

6:为docker建立用户组

docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。

sudo groupadd docker

7:添加当前用户到docker组

sudo usermod -aG docker $USER

8:这里使用的是 阿里云提供的镜像加速 ,登录并且设置密码之后在左侧的 Docker Hub 镜像站点 可以找到专属加速器地址,复制下来。

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["你的加速器地址"] }

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

之后重新加载配置,并且重启 Docker 服务

systemctl daemon-reload

systemctl restart docker

2:docker常用命令

docker -v/docker version:查看版本

docker images:查看镜像

docker search tomcat:搜索镜像

docker pull tomcat:拉取镜像

docker rmi tomcat:删除镜像

docker run -it 470671670cac(镜像ID):运行镜像并进入容器

$ exit (退出并停止)

Ctrl + P + Q (退出)

容器命令

docker ps 查看当前运行的容器

docker ps -n3 查看前三运行的容器

docker start 容器id

docker stop 容器id

docker restart 容器id

docker kill 容器id  强制关闭容器

docker rm 容器id 删除容器

docker attach 容器ID 进入容器

# 后台运行容器 # centos的话,运行完后会退出 # 如果是阻塞的程序,不会退出

docker run -d centos

# 查看容器日志
docker logs a389c769edd1(容器ID)
docker logs -t a389c769edd1(容器ID) 显示时间
docker logs -f a389c769edd1(容器ID) 不停的追加
docker logs -t -f --tail 3 a389c769edd1(容器ID)
#查看容器内进程

docker top 容器id

#查看容器详情

docker inspect 容器id

#向容器内发送命令

docker exec -t 容器id ls -l /root 

#以bash方式进入到容器中

docker exec -t 容器id /bin/bash

 

# 拷贝容器内的文件到宿主机
docker cp 容器ID:容器文件路径 宿主机路径
docker cp 9e12d1175d04:/tmp/test.txt ./

# 端口映射
# docker内是8080,宿主机是8099
# -d 后台运行
docker run -d -p 8099:8080 --name my_tomcat tomcat
# 文件映射
# 宿主机路径 /opt/docker_file_map/tomcat_webapps
# docker内路径 /usr/local/tomcat/webapps
docker run -d -p 8099:8080 -v /opt/docker_file_map/
tomcat/webapps:/usr/local/tomcat/webapps --name 
my_tomcat tomcat
# 运行后,再进入容器,可以进行各种编辑
docker exec -it 容器id/bin/bash
 

#生成镜像方式

1:commit方式

docker commit -a=‘作者名’ -m=“描述” 容器id 包/名称:版本

docker commit -a="test_author" -m="tomcat test hello" b6c1ff931ffc skey/mytomcat:1.1

#启动镜像

docker run -d -p 23333:8080 skey/mytomcat:1.1

2:dockerfile方式

# 1. 编辑Dockerfile (详见后续Dockerfile示例)
# 2. 构建镜像(当前路径),最后的.是当前路径
docker build -t hello:v1.0 . //注意最后有个点
# 3. 运行镜像
docker images | grep hello 
docker run -d -p 23333:8080 hello:v1.0
# 4. 导出镜像
docker save hello -o hello.tar
# 5. 加载镜像
docker load -i hello.tar
 

dockerfile语法

# FROM 是继承哪一个镜像
FROM java:8
# 作者和邮箱
MAINTAINER jerry<jerry2020@gmail.com>
# ENV 是配置环境变量
ENV mypath=/usr/local
# WORKDIR 是工作目录,进入该镜像时会到该目录
WORKDIR $mypath
# ADD 添加并解压
ADD test.zip  /
# COPY 是只添加
# 挂载容器的的路径
VOLUME ["/data01", "/data02"]
# 对外暴露的端口
EXPOSE 8080
# RUN 运行shell命令
RUN ls /
# CMD 容器启动时运行,运行shell命令,重复多个CMD时,只有
最后一个生效
# 并且会被`docker run 镜像ID`后面的命令会替换
CMD /bin/bash
# ENTRYPOINT 不会被替换,而是追加后面的参数
ENTRYPOINT /bin/bash
 

dockerfile示例

FROM centos
# 作者和邮箱
MAINTAINER jerry<jerry2020@gmail.com>
# 挂载容器的的路径
# 会自动与主机某个路径对应,需利用`docker inspect 容器ID`查看路径
VOLUME ["/data01", "/data02"]
CMD echo "finished ------ success"
# 默认命令,容器启动时运行,只有最后一个CMD有效,并且会被docker run 后面的命令替换
CMD /bin/bash

# FROM 继承自镜像java:8
FROM java:8

# ENV 配置环境变量
ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Dspring.config.location=/hello/application.properties"

# RUN 运行Linux命令
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD hello.zip  .

RUN unzip hello.zip
RUN chmod +x /hello/bin/start.sh
RUN chmod +x /hello/bin/stop.sh

# CMD 容器启动时运行,运行Linux命令
CMD cd /hello/bin/&&./start.sh
 

实例做一个scala,java,maven环境

选择一个目录准备好如下包

jdk-8u231-linux-x64.tar.gz
scala-2.11.12.tgz
apache-maven-3.6.3-bin.tar.gz
在当前目录下编辑dockerfile $vim DockerFile

FROM centos:7
MAINTAINER my_name<my_mail@gmail.com>

# 解压宿主机的jdk、scala、maven到容器内
ADD jdk-8u231-linux-x64.tar.gz /usr/local
ADD scala-2.11.12.tgz /usr/local
ADD apache-maven-3.6.3-bin.tar.gz /usr/local

# 安装vim,下载有点慢
RUN yum -y install vim

# 配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_231
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV SCALA_HOME /usr/local/scala-2.11.12/
ENV MAVEN_HOME /usr/local/apache-maven-3.6.3
ENV PATH $PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$MAVEN_HOME/bin

# 暴露端口,不需要
# EXPOSE 8080

# 工作目录
WORKDIR /usr/local/

# 运行
CMD java -version && scala -version && mvn -version && /bin/bash
命令1 - 生成镜像 $ docker build -t my_java_scala_env:1.0 .
命令2 - 运行镜像 $ docker run -it my_java_scala_env:1.0
命令3 - 导出镜像 $ docker save my_java_scala_env:1.0 -o my_java_scala_env_1.0.tar
复制到到其他服务器
命令4 - 加载镜像 $ docker load -i my_java_scala_env_1.0.tar
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值