docker 实战练习1

docker search mysql --搜索镜像
docker pull docker.io/mysql --下载镜像
docker images --查看下载的镜像
docker tag docker.io/mysql mysql8:new --给镜像加标签
docker inspect d06c3c789716 --查看镜像的详细信息
docker rmi mysql8:new --删除镜像,注意如果用容器使用这个镜像,先删除容器,再删除镜像

在已有的镜像上面添加新内容
docker run -ti docker.io/centos /bin/bash 先进入容器,记住容器的id
[root@localhost ~]# docker run -ti docker.io/centos /bin/bash
[root@fafd0c8100ce /]# 
[root@fafd0c8100ce /]# touch my.txt
[root@fafd0c8100ce /]# echo 1111111>my.txt 
bash: 1111111: Bad file descriptor
[root@fafd0c8100ce /]# echo "1111111">my.txt 
[root@fafd0c8100ce /]# 
[root@fafd0c8100ce /]# exit
exit
在容器里面创建一个文件,并输入1111111
[root@localhost ~]# docker commit -m "create a new file" -a "dandh" fafd0c8100ce centos:new  
sha256:d7ed49fd9b7df6692ffff18c7bc21faa5509e425804d9dd441a0d3936d25e42a
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              new                 d7ed49fd9b7d        41 seconds ago      274 MB
docker.io/mysql     latest              d06c3c789716        28 hours ago        477 MB
docker.io/centos    latest              1e1148e4cc2c        6 weeks ago         202 MB
这里可以看出多了一个镜像,第一行,我们可以运行下容器看下,看下里面的文件还在不在
[root@localhost ~]# docker run -ti d7ed49fd9b7d /bin/bash
[root@15f188d20362 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  my.txt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@15f188d20362 /]# cat my.txt 
1111111
[root@15f188d20362 /]# 
这样看来没有问题

镜像的导入和导出
[root@localhost ~]# docker save -o mysql.tar docker.io/mysql:latest
[root@localhost ~]# ll
总用量 470748
-rw-------. 1 root root      1258 1月  22 17:26 anaconda-ks.cfg
-rw-------. 1 root root 482041344 1月  23 10:25 mysql.tar
我先删除mysql镜像,再从mysql.tar导入试下,记录镜像id
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              new                 d7ed49fd9b7d        17 minutes ago      274 MB
docker.io/mysql     latest              d06c3c789716        29 hours ago        477 MB
docker.io/centos    latest              1e1148e4cc2c        6 weeks ago         202 MB
[root@localhost ~]# 
[root@localhost ~]# docker rmi d06c3c789716
Untagged: docker.io/mysql:latest
Deleted: sha256:d06c3c789716edfe9bf07bca224741bc61d096068753c57b2bf9ac9e6e37ce0c
Deleted: sha256:32e2321f2dfd47d088f46a0162cf1349cd787a2b81e7623df191d67daf62afbb
Deleted: sha256:7bcb817b23dcb5b87062cf2386413bc043a52c9b814ba82f748278243ece3df1
Deleted: sha256:07048bf3471f3b68a7ad81f3bbc851165996c4ee639c12934198298b7e898dd3
Deleted: sha256:6f8adf09b7c4323c8fc1c26887bab159688aa66543e951c3115c12601e821e67
Deleted: sha256:b5b2c699cca2c5cc6adf56db40d0dce427099c69189daf267c7563ec27db8bf5
Deleted: sha256:e4e5e2c13bfc19ea0b7931fe111b490026c943d49b9b0fc658134bc168f8f4f0
Deleted: sha256:6cc2a43de520c5c2fb3308ecc23cb93e5ca4e40c2c5c781825572f1dcfc12010
Deleted: sha256:41a87a1b83603cb4cbd7b95fe803ab3c37f5cf1fda058361a89108f5ae6f33cb
Deleted: sha256:fb70646553d25ffeca12296dd9ef69cc6a61567d4636adf41c195ceaa7d91bba
Deleted: sha256:044ab08434546e6569ed9ac43200e0c696c38751e1eb88748063256183beecf9
Deleted: sha256:8de920f11cbdc968c39f60866eaea7e60b3f60e76fca76d585a11ee5a872322d
Deleted: sha256:7b4e562e58dcb7fbe1e27bb274f0ff8bfeb2fd965203380436e159df9f218900
[root@localhost ~]# 
导入镜像
[root@localhost ~]# docker load <mysql.tar 
7b4e562e58dc: Loading layer [==================================================>] 58.44 MB/58.44 MB
f01f1a2037eb: Loading layer [==================================================>] 338.4 kB/338.4 kB
b718c6b527ab: Loading layer [==================================================>] 10.44 MB/10.44 MB
6680e06777c4: Loading layer [==================================================>] 4.471 MB/4.471 MB
047cc8a3632b: Loading layer [==================================================>] 1.536 kB/1.536 kB
9c976f26b06d: Loading layer [==================================================>] 46.15 MB/46.15 MB
31c1ae796cfa: Loading layer [==================================================>] 30.72 kB/30.72 kB
fbe94c6b114f: Loading layer [==================================================>] 3.584 kB/3.584 kB
36ceffc9bf1e: Loading layer [==================================================>] 362.1 MB/362.1 MB
bfa4bad6b620: Loading layer [==================================================>] 5.632 kB/5.632 kB
d8e5a8556c8a: Loading layer [==================================================>] 9.728 kB/9.728 kB
a41846c12aba: Loading layer [==================================================>] 1.536 kB/1.536 kB
Loaded image: docker.io/mysql:latest
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              new                 d7ed49fd9b7d        21 minutes ago      274 MB
docker.io/mysql     latest              d06c3c789716        29 hours ago        477 MB
docker.io/centos    latest              1e1148e4cc2c        6 weeks ago         202 MB
[root@localhost ~]# 
ok,完美实现镜像的导入和导出
docker push --上传自己的镜像到仓库,要先登录仓库


2,容器
创建一个空的容器
docker create -ti centos:7 --创建容器
docker ps -a  查看所有容器
docker ps    --正在运行的容器
docker logs 15f188d20362 --查看容器日志
docker stop 15f188d20362 --终止容器
docker start 15f188d20362 --启动容器
docker restart 15f188d20362 --重启容器
docker attach 183f23fe4772 --进入容器
docker rm dfc0cca8fe24 --删除容器
docker exec -ti 183f23fe4772 /bin/bash --进入容器
导入和导入容器
[root@localhost ~]# docker export 18 >centis.run.tar
[root@localhost ~]# ll
总用量 723696
-rw-------. 1 root root      1258 1月  22 17:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 259016192 1月  23 11:10 centis.run.tar
-rw-------. 1 root root 482041344 1月  23 10:25 mysql.tar
[root@localhost ~]# 
[root@localhost ~]# docker export 15 >centis.stop.tar
[root@localhost ~]# ll
总用量 976644
-rw-------. 1 root root      1258 1月  22 17:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 259016192 1月  23 11:10 centis.run.tar
-rw-r--r--. 1 root root 259016192 1月  23 11:12 centis.stop.tar
-rw-------. 1 root root 482041344 1月  23 10:25 mysql.tar
[root@localhost ~]# 
导入容器
[root@localhost ~]# cat centis.stop.tar |docker import - centos/7
sha256:0c99ed1dff937157e38a96bd955e9ed5ef26bc704296a84b5053902b499cda7c
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos/7            latest              0c99ed1dff93        36 seconds ago      250 MB
centos              new                 d7ed49fd9b7d        About an hour ago   274 MB
docker.io/mysql     latest              d06c3c789716        29 hours ago        477 MB
docker.io/centos    7                   1e1148e4cc2c        6 weeks ago         202 MB
docker.io/centos    latest              1e1148e4cc2c        6 weeks ago         202 MB
容器导入导出ok了


3,仓库
创建一个私有仓库
docker run -d -p 5000:5000 registry

4,数据管理
数据库卷的使用类似与linux的mount
先查看mysql镜像的信息
docker inspect docker.io/mysql:latest --查看到镜像里面mysql的data目录是/var/lib/mysql
先创建mysql的配置文件目录和数据目录
[root@localhost /]# mkdir /data
[root@localhost /]# mkdir /mysqlconf
启动mysql容器
[root@localhost /]# docker run -p 3306:3306 --name mysql8.0 -v /mysqlconf:/etc/mysql/conf.d -v /mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=654321 -d d06c3c789716
48bfb6060a7e4178280873e24295aa7611e75ef4412f601d2c4830250a967a0e
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
48bfb6060a7e        d06c3c789716        "docker-entrypoint..."   6 seconds ago       Up 6 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql8.0
09e7e5bc28f0        registry            "/entrypoint.sh /e..."   41 minutes ago      Up 41 minutes       0.0.0.0:5000->5000/tcp              hungry_austin
183f23fe4772        d7ed49fd9b7d        "/bin/bash"              About an hour ago   Up About an hour                                        infallible_brattain
[root@localhost /]# ls /mysqldata/
auto.cnf       binlog.000002  ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  ibtmp1        mysql      performance_schema  public_key.pem   server-key.pem  undo_001
binlog.000001  binlog.index   ca.pem      client-key.pem   ibdata1         ib_logfile1  #innodb_temp  mysql.ibd  private_key.pem     server-cert.pem  sys             undo_002
进入容器
[root@localhost mysqldata]# docker exec -it 48bfb6060a7e /bin/bash
root@48bfb6060a7e:/# 
root@48bfb6060a7e:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.14 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
授权外部链接
create database mydb default charset utf8;
ok,测试没有问题
[root@localhost ~]# cd /mysqldata/
[root@localhost mysqldata]# ll
总用量 179196
-rw-r-----. 1 polkitd input       56 1月  23 11:58 auto.cnf
-rw-r-----. 1 polkitd input  3073845 1月  23 12:00 binlog.000001
-rw-r-----. 1 polkitd input      199 1月  23 12:07 binlog.000002
-rw-r-----. 1 polkitd input      359 1月  23 12:28 binlog.000003
-rw-r-----. 1 polkitd input       48 1月  23 12:07 binlog.index
-rw-------. 1 polkitd input     1680 1月  23 11:58 ca-key.pem
-rw-r--r--. 1 polkitd input     1112 1月  23 11:58 ca.pem
-rw-r--r--. 1 polkitd input     1112 1月  23 11:58 client-cert.pem
-rw-------. 1 polkitd input     1676 1月  23 11:58 client-key.pem
-rw-r-----. 1 polkitd input     5949 1月  23 12:00 ib_buffer_pool
-rw-r-----. 1 polkitd input 12582912 1月  23 12:28 ibdata1
-rw-r-----. 1 polkitd input 50331648 1月  23 12:28 ib_logfile0
-rw-r-----. 1 polkitd input 50331648 1月  23 11:56 ib_logfile1
-rw-r-----. 1 polkitd input 12582912 1月  23 12:02 ibtmp1
drwxr-x---. 2 polkitd input      187 1月  23 12:02 #innodb_temp
drwxr-x---. 2 polkitd input        6 1月  23 12:28 mydb
drwxr-x---. 2 polkitd input      143 1月  23 11:58 mysql
-rw-r-----. 1 polkitd input 31457280 1月  23 12:28 mysql.ibd
drwxr-x---. 2 polkitd input     4096 1月  23 11:58 performance_schema
-rw-------. 1 polkitd input     1680 1月  23 11:58 private_key.pem
-rw-r--r--. 1 polkitd input      452 1月  23 11:58 public_key.pem
-rw-r--r--. 1 polkitd input     1112 1月  23 11:58 server-cert.pem
-rw-------. 1 polkitd input     1680 1月  23 11:58 server-key.pem
drwxr-x---. 2 polkitd input       28 1月  23 11:59 sys
-rw-r-----. 1 polkitd input 12582912 1月  23 12:02 undo_001
-rw-r-----. 1 polkitd input 10485760 1月  23 12:28 undo_002
----------------------打赏作者---------------------------

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值