Docker学习笔记-入门

创建一个新的 Docker 虚拟机

测试环境为Mac

docker-machine create --driver virtualbox default    

这就在 VirtualBox 中创建了一台新的default虚拟机。
该命令还会在~/.docker/machine/machines/default目录下生成一个 docker machine 的配置文件。只需执行一次create命令,然后可以使用docker-machine命令来开启,停止,查询并管理虚拟机。

列出所有可用的 docker machine
$ docker-machine ls
NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
default             *        virtualbox   Running   tcp://192.168.99.101:2376  
获取default虚拟机的环境变量
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/Users/mary/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval "$(docker-machine env default)"
连接到Docker VM
docker-machine ssh default

也可以在宿主机上通过ssh连接

ssh docker@192.168.99.100
user: docker
pass: tcuser
设置Docker默认镜像服务器

在/etc/docker/daemon.json添加以下配置,修改保存后重启 Docker 以使配置生效

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
查看docker镜像
docker@default:~$ docker images
REPOSITORY                     TAG        IMAGE ID         CREATED             SIZE
hub.c.163.com/library/tomcat   latest     72d2be374029     3 months ago        292MB

运行docker镜像,将docker容器的8080端口映射到宿主机的8888端口上

docker run -i -t -p 8888:8080 72d2be374029
删除镜像
docker rmi ed9c93747fe1

若镜像有运行的容器则无法删除

查看运行的docker实例

docker@default:~$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
1f68cb2ef5ee        72d2be374029        "catalina.sh run"   48 seconds ago      Up 47 seconds       0.0.0.0:8888->8080/tcp   modest_goldwasser
8409934c431d        72d2be374029        "catalina.sh run"   14 minutes ago      Up 14 minutes       0.0.0.0:8088->8080/tcp   practical_shirley
登录docker容器
docker exec -i -t 1f68cb2ef5ee /bin/bash
停止docker容器
docker stop --time=20 container_name

docker stop命令执行的时候,会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,如果等待时间达到设定的超时时间,或者默认的10秒,会继续发送SIGKILL的系统信号强行kill掉进程。在容器中的应用程序,可以选择忽略和不处理SIGTERM信号,不过一旦达到超时时间,程序就会被系统强行kill掉,因为SIGKILL信号是直接发往系统内核的,应用程序没有机会去处理它。在使用docker stop命令的时候,唯一能控制的是超时时间.

docker kill --signal=SIGINT container_name

与docker stop命令不一样的地方在于,docker kill没有任何的超时时间设置,它会直接发送SIGKILL信号,以及用户通过signal参数指定的其他信号。

docker stop命令,更类似于Linux系统中的kill命令,二者都是发送系统信号SIGTERM。而docker kill命令,更像是Linux系统中的kill -9或者是kill -SIGKILL命令,用来发送SIGKILL信号,强行终止进程。

查看容器的信息

docker ps命令可以查看容器的CONTAINER ID、NAME、IMAGE NAME、端口开启及绑定、容器启动后执行的COMMNAD。经常通过ps来找到CONTAINER_ID。
docker ps 默认显示当前正在运行中的container
docker ps -a查看包括已经停止的所有容器
docker ps -l 显示最新启动的一个容器(包括已停止的)

查看docker容器的IP地址
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' 1f68cb2ef5ee
查看日志
docker logs 1f68cb2ef5ee

跟踪日志,类似 tail -f xxx.log 可以通过ctrl+c退出查看日志

docker logs -f 1f68cb2ef5ee
Docker统计信息
docker@default:~$ docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
1f68cb2ef5ee        modest_goldwasser   0.13%               71.8MiB / 995.7MiB   7.21%               828B / 0B           1.2MB / 0B          41
8409934c431d        practical_shirley   0.13%               69MiB / 995.7MiB     6.93%               648B / 0B           69.6kB / 0B         43
深入容器
docker inspect 1f68cb2ef5ee
删除容器
docker rm e6dd317561da

可以通过参数 -f 强制删除运行中的容器。

删除所有容器
docker rm 'sudo docker ps -a -q'

docker ps命令会列出所有运行的容器,-a表示列出所有容器,-q表示只需要返回容器的ID

Docker安装Mysql
## 创建mysql本地存储目录
mkdir -p ~/mysql/data
docker run -p 3306:3306 --name mysql -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  -d hub.c.163.com/library/mysql:5.6

-p 3306:3306 是将docker 的3306端口映射到本机3306 端口
-v ~/mysql/data:/var/lib/mysql 是将docker的/var/lib/mysql 文件夹映射到本机的/mysql/data
-e MYSQL_ROOT_PASSWORD=123456 输入密码,mysql原始密码为123456

通过Dockerfile安装Mysql

Mysql官方提供了安装Mysql的Dockerfile,地址https://github.com/mysql/mysql-docker,这里选择8.0版本,一共三个文件
479975-20171207200045050-858391663.png
在default虚拟机上的docker用户目录下新建一个文件夹mysql,然后将这三个文件放在mysql文件夹下。进入mysql文件夹,执行以下命令即可构建一个新的镜像。

sudo docker build -t="test/mysql" .

build成功后使用docker images命令即可插件镜像

docker@default:~/mysql8$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
test/mysql                     latest              5320750e685d        2 hours ago         295MB

构建镜像后即可通过docker run命令来启动,需要在启动参数中设置mysql的密码。

docker run -e MYSQL_ROOT_PASSWORD=123456 5320750e685d

转载于:https://www.cnblogs.com/umgsai/p/7989005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值