docker命令

https://console.cloud.tencent.com/lighthouse/instance/detail?rid=8&id=lhins-i4tkgx38

官方地址:https://docs.docker.com/engine/install/centos/


一、安装

1、卸载docker:

yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-engine

2、安装需要的包

yum install -y yum-utils

3、设置镜像的仓库

yum-config-manager \

    --add-repo \

    https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager \

    --add-repo \

    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、安装前,建议大家更新一下索引,将当前环境更新为最新:

yum makecache fast

5、安装最新的引擎 CE社区版本  EE企业版

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

如果报错:wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm


6、可以制定版本

yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin

7、启动docker

systemctl start docker

8、运行hello-world

docker run hello-world

9、查看镜像

docker images

10、卸载docker

yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

rm -rf /var/lib/docker

 rm -rf /var/lib/containerd



手动修改镜像地址:

(1) mkdir -p /etc/docker

(2)tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://3s2mwwca.mirror.aliyuncs.com"]

}

EOF

(3)systemctl daemon-reload

(4)systemctl restart docker #重启docker

二、常见镜像命令

1、查看镜像:docker images

2、搜索镜像:docker search mysql

3、拉取镜像:docker pull mysql   或(加版本)   docker pull mysql:5.7

4、删除镜像:docker rmi -f id id id  

5、删除所有镜像:docker rmi -f $(docker images -aq)

三、常见容器命令

1、下载centos镜像:docker pull centos

新建容器并启动

docker run [可选参数] image

--name=""容器名字

-d 后台运行

-it 使用交互方式运行,进入容器查看内容

-p 指定容器的端口 -p 8080:8080

-p 主机端口:容器端口

-p 容器端口

-P 随机指定端口



运行centos:  docker run -it centos /bin/bash


退出容器centos:  exit

docker ps -a  运行过的容器

docker ps -a -n=1  最近运行的1个容器

docker ps -aq 现实所有容器的编号

删除容器:

Exit 退出容器 停止运行

Ctrl + Q + P 退出容器,仍然运行 删除容器:

docker rm 容器id  不能删除在运行的

docker rm -f $(docker ps -aq)

启动和停止容器的操作

docker start 容器id

docker restart 容器id

docker stop 容器id

docker kill 容器id

四、其他命令

1、查看日志: docker logs

2、启动centos并输出日志:

docker run-d centos /bin/sh -c "while true: do echo have a nice dream; sleep 1 ;done "

3、查看日志: docker logs -tf --tail 10 容器id

4、查看元数据: docker inspect 容器id

5、进入当前正在运行的容器: docker exec -it ba69ec9354fb /bin/bash

6、进入当前正在运行的容器: docker attach 容器id

7、docker exec 进入容器后打开一个新的终端

8、docker attach 进入容器正在执行的终端(日志在打印)

9、从容器中复制文件到服务器: docker cp fdf9a113e96b(容器id):home/jaan.java /data

五、docker安装Nginx

1、下载nginx: docker pull nginx

2、运行nginx: docker run -d --name nginx01 -p 3344:80 nginx

3、开启防火墙: systemctl start firewalld

4、开放指定端口号: firewall-cmd --zone=public --add-port=1935/tcp --permanent

5、重启防火墙: firewall-cmd --reload

6、查看端口号: netstat -ntlp

7、iptables -t filter -A INPUT -p tcp –dport 2222 -j ACCEPT,表示允许tcp协议通过2222端口

8、iptables-save > /etc/sysconfig/iptables

六、docker安装tomcat

1、docker pull tomcat:9.0

2、docker run -d -p 3345:8080 --name tomcat01 tomcat

3、复制webapps.dist/* 到webapps: cp -r webapps.dist/* webapps

七、docker安装elk

1、docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

2、查看cpu状态:docker stats

3、加内存限制启动:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"-e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch


八、docker commit生成镜像

1、docker commit 提交容器成为一个新的副本。

2、docker commit -m= "提交描述信息" -a="作者" 容器id 目标镜像名:[tag]

实战测试:

3、启动tomcat: docker run -it 3345:8080 tomcat

4、Docker commit提交:

docker commit -a="joker" -m="webapptest" 293946dab957 tomcat01:1.0

九、docker 容器数据卷

1、使用数据卷:

方式1:直接使用命令来挂载:

docker run -it -v 主机目录:容器目录

docker run -it -v /data/test:/home centos /bin/bash

十、docker安装mysql

1、docker run -di -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="***" --name mysql05 mysql:5.7

2、匿名挂载:docker run -d -P --name nginx02 -v /etc/nginx nginx

3、具名挂载:docker run -d -P --name nginx02 -v juming-nginx: /etc/nginx nginx

十一、初识dockerfile

1、dockerfile是什么:构建docker镜像的文件


2、构建镜像:docker build -f dockerfile1 -t jaan/centos:1.0 .

十二、数据卷容器

1、docker run -it --name docker02 --volumes-from docker01 jaan/centos:1.0

2、docker run -it --name docker02 --volumes-from heuristic_almeida jaan/centos:1.0


十三、mysql主从

1、新建mysql :   docker run -d -p 3306:3306 -v etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD="***" --name mysql06 mysql:5.7

2、新启第二个mysql:  docker run -d -p 3307:3307 -e MYSQL_ROOT_PASSWORD="***" --name mysql08 --volumes-from mysql06 mysql:5.7

总结:1、编写dockerfile2、docker build 构建镜像 3、docker run 运行镜像 4、docker push发布镜像

十三、Dockerfile

FROM 基础镜像

MAINTAINER 维护者信息 姓名+邮箱

RUN   镜像构建时运行命令

ADD   步骤

WORKDIR 镜像的工作目录

VOLUME 镜像挂在地址

EXPOSE 指定对外端口

RUN  运行

CMD  指定容器启动要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT 指定容器启动要运行的命令,可以追加命令

ONBUILD 当构建一个被集成dockerfile 会运行ONBUILD指令

COPY   将文件拷贝到镜像中

ENV   构建的时候设置环境变量

十四、[endif]构建自己的centos

1


FROM centos

MAINTAINER jaan<***@163.com>


ADD jdk-8u11-linux-x64.tar.gz /usr/local/

ADD apache-tomcat-9.0.22.tar.gz /usr/local/


RUN yum -y install vim


ENV MYPATH /usr/local

WORK $MYPATH


ENV JAVA_HOME /usr/local/jdk1.8.0_11

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22

ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.22

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin


EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out


十五、docker网络


1、bridge 桥接模式

2、none  不配置网络

3、host   和宿主机共享网络

4、container 容器内网络联通


直接启动的命令默认bridge

docker run -d -P --name tomcat01 tomcat

docker run -d -P --name tomcat01 -net bridge tomcat

docker0 特点 默认bridge,不支持域名访问 --link可以打通访问


创建自己的网络

--driver bridge 桥接

--subnet 子网地址

--gateway 网关

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容