运维之道 | Docker常用命令、LANM服务器搭建、容器备份迁移

Docker常用命令、服务器搭建、迁移备份

一、Docker常用命令

1、查看主机docker中的镜像

[root@localhost ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        2 months ago        220MB

2、从docker远程库中查找镜像

^C[root@localhost ~]# docker search nginx
NAME         DESCRIPTION                        STARS        OFFICIAL        AUTOMATED
nginx        Official build of Nginx.           12382        [OK]                

3、从docker远程库中拉取镜像

[root@localhost ~]# docker pull nginx

4、启动运行容器

[root@localhost ~]# docker run -it 容器名/ID /bin/bash   ///-it 分配一个伪终端

5、自定义容器名并启动

[root@localhost ~]# docker run -it --name 自建名 容器名/ID   ///以centos7的命名进入centos

6、查看正在运行的容器

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE    COMMAND      CREATED         STATUS            PORTS   NAMES
28abedfe4443   centos   "/bin/bash"  20 hours ago    Up About an hour          centos7

7、查看所有(正在、停止)运行的容器

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE    COMMAND      CREATED         STATUS            PORTS   NAMES
28abedfe4443   centos   "/bin/bash"  20 hours ago    Up About an hour          centos7

8、查看上一次运行的容器

[root@localhost ~]# docker ps -l
CONTAINER ID   IMAGE    COMMAND      CREATED         STATUS            PORTS   NAMES
28abedfe4443   centos   "/bin/bash"  20 hours ago    Up About an hour          centos7

9、退出容器

[root@28abedfe4443 ~]# exit    ///直接退出容器 

或者使用:Ctrl+Q -- Ctrl+P -- Ctrl+Q    ///将容器挂载至后台,不退出

10、进入后台挂载容器

[root@localhost ~]# docker attach 容器名/ID

[root@localhost ~]# docker exec -it 容器名/ID /bin/bash

11、启动容器

[root@localhost ~]# docker start 容器名/ID

12、停止容器

[root@localhost ~]# docker stop 容器名/ID

13、重启容器

[root@localhost ~]# docker restart 容器名/ID

14、查看容器正在进行的进行

[root@localhost ~]# docker top 容器名/ID
UID       PID      PPID     C      STIME       TTY       TIME        CMD
root      9332     9313     0      15:59       pts/0     00:00:00    /bin/bash

15、查看容器内部所有详情信息

[root@localhost ~]# docker inspect 容器名/ID

16、查看容器端口号

[root@localhost ~]# docker port 容器名/ID

17、修改容器名

[root@localhost ~]# docker rename 原名 改后名

18、主机与容器之间文件传输

[root@localhost ~]# docker cp centos7:/root/villian/abc.txt /root/zwl    
将centos7容器中/root/villian/abc.txt文件拷贝至主机/root/zwl目录下

[root@localhost ~]# docker cp /root/zwl/zwl.txt centos7:/root/villian
将主机/root/zwl/zwl.txt文件拷贝至容器/root/zwl目录下

19、容器目录挂载主机

[root@localhost ~]# docker run -it --name 容器名/ID -v /挂载路径:/挂载到docker路径  容器名/ID

20、将容器导出主机中

[root@localhost ~]# docker export 容器名.tar 容器名

21、将容器从主机导入

[root@localhost ~]# cat centos.tar | docker import centos:v1   
将快照文件导入镜像centos:vi

22、写一个循环脚本,防止后台运行容器停止

[root@localhost ~]# docker run --name 容器名 -d 容器名 /bin/sh -c "while true; do echo hello world; sleep 1; done"

23、以端口名映射主机端口方式登录容器

[root@localhost ~]# docker run -p 81:80 --name web -it ubuntu /bin/bash
docker run -p 容器端口:主机端口 --name 容器名 -it 容器名 /bin/bash

24、查看docker其他命令

[root@localhost ~]# docker --help

二、LANM服务器搭建

安装JDK环境:

1、在/opt/目录下创建software目录

[root@localhost ~]# mkdir -p /opt/software

2、下载jdk并解压,移动并重命名为jdk:

[root@localhost ~]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_171/ /opt/software/jdk

3、配置环境变量:

[root@localhost ~]# vim ~/.bashrc

export JAVA_HOME=/opt/software/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

4、使配置生效:

[root@localhost ~]# source ~/.bashrc

5、验证是否配置成功:

[root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode

安装tomcat

1、搜索tomcat镜像

[root@localhost ~]# docker search tomcat

2、拉取tomcat镜像

[root@localhost ~]# docker pull tomcat

3、根据镜像启动tomcat容器

[root@localhost ~]# docker run --name tomcat1 -d -p 8080:8080 tomcat

4、查看本地的容器

[root@localhost ~]# docker ps -a
CONTAINER ID    IMAGE      COMMAND              CREATED        STATUS         PORTS                    NAMES
b2e9025226f0    tomcat    "catalina.sh run"     2 days ago     Up 2 days    0.0.0.0:8080->8080/tcp    tomcat1

5、测试tomcat动态界面
在浏览器中输入ip:映射端口,如 localhost:8080,出现下面页面则代表成功
在这里插入图片描述
扩展:通过映射不同端口,开启多个tomcat服务

[root@localhost ~]# docker run --name tomcat2 -d -p 8082:8082 tomcat
[root@localhost ~]# docker run --name tomcat3 -d -p 8083:8083 tomcat
[root@localhost ~]# docker run --name tomcat4 -d -p 8084:8084 tomcat

安装mysql数据库

1、搜索mysql镜像

[root@localhost ~]# docker search mysql

2、拉取mysql镜像

[root@localhost ~]# docker pull mysql

3、启动mysql容器,-e MYSQL_ROOT_PASSWORD是必填项,用于指定root用户的密码

[root@localhost ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql

4、查看本地的容器

[root@localhost ~]# docker ps -a
CONTAINER ID     IMAGE      COMMAND                CREATED        STATUS          PORTS                    NAMES
d25a5947f7db     mysql    "docker-entrypoint..."   2 days ago     Up 33 seconds   0.0.0.0:3306->3306/tcp   mysql01

5、登录mysql

root@d25a5947f7db:/# mysql -uroot -p
Enter password:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> 

安装nginx静态服务器

1、搜索nginx镜像

[root@localhost ~]# docker search nginx

2、拉取nginx镜像

[root@localhost ~]# docker pull nginx

3、使用nginx镜像启动nginx容器

[root@localhost ~]# docker run --name nginx -d -p 80:80 nginx

4、查看本地的容器

[root@localhost ~]# docker ps -a
CONTAINER ID    IMAGE      COMMAND                  CREATED        STATUS            PORTS                   NAMES
bcd974e90360    nginx     "nginx -g 'daemon ..."   2 days ago     Up 44 hours       0.0.0.0:80->80/tcp       nginx

5、测试访问Nginx静态界面
在这里插入图片描述
拓展:通过容器挂载主机目录静态文件,实现容器静态页面
1、通过挂载方式进入容器

[root@localhost ~]# docker run -it --name nginx -d -p 80:80 -v /home:/home nginx

2、修改容器中nginx.conf配置文件

root@d25a5947f7db:/# vim default.conf

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
     root   /home/userfile;  #修改root根目录,使指向路径为/home/userfile
        index  index.html index.htm;
    }

备注: nginx容器中配置了文件存放地址是/home/userfile ,我们把本地目录 /home 挂载到了容器的/home目录中,所以我们要把存放文件的文件夹 userfile 放在本地目录 /home 下面。

3、测试
文件目录的一张图片路径是这样的: /home/userfile/nginx.jpg
在浏览器中输入ip:映射端口,如 localhost:80/nginx.jpg,出现下面页面则代表成功
在这里插入图片描述


安装Apache服务器

1、搜索httpd镜像

[root@localhost ~]# docker search httpd

2、拉取httpd镜像

[root@localhost ~]# docker pull httpd

3、根据httpd镜像创建httpd容器

[root@localhost ~]# docker run --name httpd -d -p 80:80 httpd

4、查看本地的容器

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3d4d1836b984        httpd               "httpd-foreground"       5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp                  httpd

5、测试httpd界面
在浏览器中输入ip:映射端口,如 localhost:80 ,出现下面页面则代表成功
在这里插入图片描述


三、容器迁移备份

1、容器保存为镜像

docker commit nginx mynginx

nginx是容器名称
mynginx是新的镜像名称
此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器

2、镜像备份

docker  save -o mynginx.tar mynginx

-o 输出到的文件
mynginx.tar是nginx备份压缩包
执行后,运行ls命令即可看到打成的tar包

3、镜像恢复与迁移

docker load -i mynginx.tar

-i 输入的文件
mysnginx.tar为nginx备份压缩包
执行后再次查看镜像,可以看到镜像已经恢复

发布了97 篇原创文章 · 获赞 10 · 访问量 3393

猜你喜欢

转载自blog.csdn.net/VillianTsang/article/details/103702241